我有以下ItemArray:獲取單元從DataTable.Row.ItemArray使用LINQ
dt.Rows[0].ItemArray.. //{0,1,2,3,4,5}
的標題是:item0,物品1,ITEM2等。
到目前爲止,得到的值從我用來索引它的ItemArray。
有沒有什麼辦法可以通過基於列名的Linq表達式來獲取ItemArray中的值?
感謝
我有以下ItemArray:獲取單元從DataTable.Row.ItemArray使用LINQ
dt.Rows[0].ItemArray.. //{0,1,2,3,4,5}
的標題是:item0,物品1,ITEM2等。
到目前爲止,得到的值從我用來索引它的ItemArray。
有沒有什麼辦法可以通過基於列名的Linq表達式來獲取ItemArray中的值?
感謝
您還可以使用列名獲取字段值:
int item1 = row.Field<int>("Item1");
你可以也使用LINQ-to-DataSet
:
int[] allItems = (from row in dt.AsEnumerable()
select row.Field<int>("Item1")).ToArray();
或方法的語法:
int[] allItems = dt.AsEnumerable().Select(r => r.Field<int>("Item1")).ToArray();
您好Tim,感謝您的評論。我不完全理解這裏的語法,因爲我希望在特定行上執行此操作(讓我們說Rows [0]),我怎麼看你的例子? – 2012-03-15 08:40:30
@DavidRasuli:如果你只有一行,你只想得到一個特定的字段值,使用我顯示的第一個方法('row.Field
謝謝,這就是我所尋找的。 – 2012-03-15 08:45:20
如果使用Item indexer而非ItemArray
,您可以通過列名訪問項目,不管你是否使用LINQ與否。
dt.Rows[0]["Column Name"]
添Schmelter的答案可能是你看着什麼,只是還添加使用Convert
類,而不是DataRow.Field
這樣:
var q = (from row in dataTable.AsEnumerable() select Convert.ToInt16(row["COLUMN1"])).ToArray();
你可以不用linq來做dt.Rows [0] [「columnName」]。ToString(); – Kaf 2012-03-15 08:35:35
是的,我只是想知道如何使用linq做代碼維護 – 2012-03-15 08:37:45