62,040
社区成员
发帖
与我相关
我的任务
分享
void Main()
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Count", typeof(Int32));
DataRow dr1 = dt.NewRow();
dr1["Name"] = "aaa";
dr1["Count"] = 2;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "bbb";
dr2["Count"] = 2;
dt.Rows.Add(dr2);
string[] arr = { "aaa", "bbb", "ccc", "ddd", "sss" };
var query= from a in arr
join t in dt.AsEnumerable()
on a equals t.Field<string>("Name") into left
from t in left.DefaultIfEmpty()
select string.Format("{0} -- {1}",a,t==null?0:t.Field<int>("Count")) ;
query.ToList().ForEach(q=>Console.WriteLine(q));
/*
aaa -- 2
bbb -- 2
ccc -- 0
ddd -- 0
sss -- 0
*/
}
[/quote]
大板威武,谢谢了void Main()
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Count", typeof(Int32));
DataRow dr1 = dt.NewRow();
dr1["Name"] = "aaa";
dr1["Count"] = 2;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "bbb";
dr2["Count"] = 2;
dt.Rows.Add(dr2);
string[] arr = { "aaa", "bbb", "ccc", "ddd", "sss" };
var query= from a in arr
join t in dt.AsEnumerable()
on a equals t.Field<string>("Name") into left
from t in left.DefaultIfEmpty()
select string.Format("{0} -- {1}",a,t==null?0:t.Field<int>("Count")) ;
query.ToList().ForEach(q=>Console.WriteLine(q));
/*
aaa -- 2
bbb -- 2
ccc -- 0
ddd -- 0
sss -- 0
*/
}
ShareDB.DataTable dt=new ShareDB.DataTable(null,"select * from MyTable");
int iColName = dt.GetOrdinal("Name");
int iColCount = dt.GetOrdinal("Count");
for(int i=0,iCount=arr.Length;i<iCount;i++)
{
int iIndex=dt.IndexOf(iColName,arr[i]);
if(iIndex == -1)
{
dt.AddRow();
dt.SetValue(iColName,arr[i]);
dt.SetValue(iColCount,0);
}
else
{
dt.SetPos(iIndex);
int iGetCount = dt.GetInt(iColCount);
}
}
用ShareDll的DataTable写的;http://bbs.csdn.net/topics/390528226?page=1
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Count", typeof(Int32));
DataRow dr1 = dt.NewRow();
dr1["Name"] = "aaa";
dr1["Count"] = 2;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Name"] = "bbb";
dr2["Count"] = 2;
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["Name"] = "ccc";
dr3["Count"] = 2;
dt.Rows.Add(dr3);
DataRow dr4 = dt.NewRow();
dr4["Name"] = "eee";
dr4["Count"] = 2;
dt.Rows.Add(dr4);
DataRow dr5 = dt.NewRow();
dr5["Name"] = "fff";
dr5["Count"] = 2;
dt.Rows.Add(dr5);
string[] arr = { "aaa", "bbb", "ccc", "ddd", "sss" };
var query = arr.Except(dt.AsEnumerable().Select(s => s.Field<string>("Name")).ToArray());
foreach (var item in query)
{
DataRow dr = dt.NewRow();
dr["Name"] = item;
dr["Count"] = 0;
dt.Rows.Add(dr);
}