我正试图了解这个名为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写这篇文章?
显然,这不是一个疑问。
这将返回一个包含Date_Time
列所有元素的IEnumerable<DateTime>
:
table.Rows.Select(r=>((DateTime)r["Date_Time"]));
在这种特定情况下,LINQ实际上可能没有好处。请参阅Eric Lippert的这篇文章和对之前SO问题的讨论。
不过,你会这样做。
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
在这种情况下,我不确定您是否真的需要LINQ,但如果您真的想用LINQ来表达您正在做的事情,请尝试以下操作:
var query = from DataRow r in table.Rows select r["Date"];
foreach (var q in query)
{
Console.WriteLine(q.ToString());
}
foreach(DateTime dt in MySqlDateTimeQueryResult().AsEnumerable()
.Select(row => row.Field<DateTime>("Date_Time")))
Console.WriteLine(dt);
var dates = table.AsEnumerable().Select(r => r["Date_Time"]);