对不起,我只是选择了LINQ并且相对较新.
是否可以将以下内容转换为LINQ?
foreach (DataRow row in results.Rows)
{
if (row["REMARKS"].ToString() == "Passes" || row["REMARKS"].ToString() == "Promoted")
{
result = String.Concat(result,row["ROLL_NO"].ToString()," ");
}
}
Run Code Online (Sandbox Code Playgroud)
我们不知道最初的值result是什么让这很棘手,但假设你实际上只是想要一个以空格分隔的列表,我会这样做:
var query = from DataRow row in result.Rows
let remarks = row["REMARKS"].ToString()
where remarks == "Passes" || remarks == "Promoted"
select row["ROLL_NO"].ToString();
string results = string.Join(" ", query);
Run Code Online (Sandbox Code Playgroud)
(请注意,DataTable没有实现IEnumerable<DataRow>,这就是为什么我使用显式类型范围变量.另一种方法是调用result.Rows.AsEnumerable(),并row隐式类型).
最后一行是假设.NET 4,它string.Join比早期版本有更多的重载.否则,这样做:
string results = string.Join(" ", query.ToArray());
Run Code Online (Sandbox Code Playgroud)
当然,如果你使用LINQ,那么你可能想远离移动DataTable等入手,并使用LINQ到SQL,实体框架,NHibernate的或任何可用的其他选项:)
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |