ian*_*eks 26 c# linq datatable
如何使用LINQ (C#)
为特定行中的特定行选择值datatable
.相当于SQL
:
select NAME from TABLE where ID = 0
Run Code Online (Sandbox Code Playgroud)
提前致谢.
ian*_*eks 27
谢谢你的回答.我不明白什么类型的对象"MyTable"(在你的答案中),下面的代码给了我下面显示的错误.
DataTable dt = ds.Tables[0];
var name = from r in dt
where r.ID == 0
select r.Name;
Run Code Online (Sandbox Code Playgroud)
找不到源类型"System.Data.DataTable"的查询模式的实现.'哪里'找不到
所以我继续谷歌搜索,发现了一些有用的东西:
var rowColl = ds.Tables[0].AsEnumerable();
string name = (from r in rowColl
where r.Field<int>("ID") == 0
select r.Field<string>("NAME")).First<string>();
Run Code Online (Sandbox Code Playgroud)
你怎么看?
Jam*_*mes 20
var name = from r in MyTable
where r.ID == 0
select r.Name;
Run Code Online (Sandbox Code Playgroud)
如果该行是唯一的,那么您甚至可以这样做:
var row = DataContext.MyTable.SingleOrDefault(r => r.ID == 0);
var name = row != null ? row.Name : String.Empty;
Run Code Online (Sandbox Code Playgroud)
我注意到其他人已经给出了非lambda语法,所以为了完成这个我将放入lambda语法等价:
非lambda(根据詹姆斯的帖子):
var name = from i in DataContext.MyTable
where i.ID == 0
select i.Name
Run Code Online (Sandbox Code Playgroud)
等效的lambda语法:
var name = DataContext.MyTable.Where(i => i.ID == 0)
.Select(i => new { Name = i.Name });
Run Code Online (Sandbox Code Playgroud)
没有太多实际差异,只是您喜欢的个人意见.
归档时间: |
|
查看次数: |
159610 次 |
最近记录: |