我正试图围绕这个名为LINQ的“新概念”。听说过吗? LOL
无论如何,我已经阅读了足够的知识,可以使用LINQ写得更清楚,但我不明白我是怎么写的:
DataTable table = MySqlDateTimeQueryResult();
for (int i = 0; i < table.Rows.Count; i++) {
DataRow r = table.Rows[i];
DateTime dt = (DateTime)r["Date_Time"];
Console.WriteLine(dt);
}
编辑[标题更改]:如何使用LINQ编写此内容?
显然,这不是一个查询。
答案 0 :(得分:5)
这将返回IEnumerable<DateTime>
,其中包含Date_Time
列的所有元素:
table.Rows.Select(r=>((DateTime)r["Date_Time"]));
答案 1 :(得分:3)
在这种特定情况下,LINQ可能实际上并不是有益的。请参阅this post by Eric Lippert以及有关this previous SO question的讨论。
但是你会这样做。
table.Rows // Start with an IEnumerable
.Select(r => r["Date_Time"]) // Map each item to something, in this case extract the value
.ToList() // ForEach comes off of List, not IEnumerable
.ForEach(x => Console.WriteLine(x)); // Do something with each
答案 2 :(得分:2)
foreach(DateTime dt in MySqlDateTimeQueryResult().AsEnumerable()
.Select(row => row.Field<DateTime>("Date_Time")))
Console.WriteLine(dt);
答案 3 :(得分:2)
在这种情况下,我不确定你真的需要 LINQ ,但如果你真的想用 LINQ 来表达你在做什么,试试这个:
var query = from DataRow r in table.Rows select r["Date"];
foreach (var q in query)
{
Console.WriteLine(q.ToString());
}
答案 4 :(得分:0)
var dates = table.AsEnumerable().Select(r => r["Date_Time"]);