LINQ访问DataTable
生活随笔
收集整理的這篇文章主要介紹了
LINQ访问DataTable
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一般的來說,你不能直接使用Linq查詢DataSet/DataTable/DataRowCollection等等。例如下面這條語句,將不能運行: var q=from r in table.Rows select r; 你可以添加下面這個類來轉(zhuǎn)換相關(guān)的數(shù)據(jù)類型用作Linq查詢: // simple wrapper that implements IEnumerable<T>
internal class LinqList<T>: IEnumerable<T>, IEnumerable
{
IEnumerable items;
internal LinqList(IEnumerable items)
{
this.items = items;
}
#region IEnumerable<DataRow> Members
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
foreach (T item in items)
yield return item;
}
IEnumerator IEnumerable.GetEnumerator()
{
IEnumerable<T> ie = this;
return ie.GetEnumerator();
}
#endregion
}
下面是一個使用該方法的實例: // 創(chuàng)建一個DataTable
DataTable table = new DataTable();
table.Columns.Add("Id", typeof(int));
table.Rows.Add(new object[]{1});
table.Rows.Add(new object[]{2});
table.Rows.Add(new object[]{3});
// 將DataTable.Rows用上面的這個類進(jìn)行封裝
LinqList<DataRow> rows = new LinqList<DataRow>(table.Rows);
// 執(zhí)行一條查詢的示例
IEnumerable<DataRow> selectedRows = from r in rows
where (int)r["Id"] == 2
select r;
// 輸出查詢結(jié)果
foreach (DataRow row in selectedRows)
Console.WriteLine(row["Id"]);
本文轉(zhuǎn)自lidup 51CTO博客,原文鏈接:http://blog.51cto.com/lidup/156117,如需轉(zhuǎn)載請自行聯(lián)系原作者
internal class LinqList<T>: IEnumerable<T>, IEnumerable
{
IEnumerable items;
internal LinqList(IEnumerable items)
{
this.items = items;
}
#region IEnumerable<DataRow> Members
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
foreach (T item in items)
yield return item;
}
IEnumerator IEnumerable.GetEnumerator()
{
IEnumerable<T> ie = this;
return ie.GetEnumerator();
}
#endregion
}
下面是一個使用該方法的實例: // 創(chuàng)建一個DataTable
DataTable table = new DataTable();
table.Columns.Add("Id", typeof(int));
table.Rows.Add(new object[]{1});
table.Rows.Add(new object[]{2});
table.Rows.Add(new object[]{3});
// 將DataTable.Rows用上面的這個類進(jìn)行封裝
LinqList<DataRow> rows = new LinqList<DataRow>(table.Rows);
// 執(zhí)行一條查詢的示例
IEnumerable<DataRow> selectedRows = from r in rows
where (int)r["Id"] == 2
select r;
// 輸出查詢結(jié)果
foreach (DataRow row in selectedRows)
Console.WriteLine(row["Id"]);
本文轉(zhuǎn)自lidup 51CTO博客,原文鏈接:http://blog.51cto.com/lidup/156117,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的LINQ访问DataTable的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server里PIVOT运算符的
- 下一篇: maven工程错误汇总