2010-11-12 48 views
0

我在C# 中有以下代碼行,它使用數據表獲取數據 這是非常通用的,可以幫助我處理多個表。如何將以下行轉換爲通用LINQ語句

object obj = ((DataRowView)editingElement.DataContext).Row[this.SelectedValuePath]; 

我想將此語句更改爲通用LINQ語句,以便我可以將它與多個LINQ表一起使用。

有人能幫我弄清楚這個嗎?

+0

http://stackoverflow.com/questions/10855/linq-query-on-a-datatable可能的重複 – 2010-11-12 23:19:31

回答

0

我不認爲你可以用任何方式使用LINQ來使你寫的代碼更好或更優雅。我認爲editingElement.DataContext的類型是object,所以你仍然需要寫劇集。如果你忘了鑄造,你的代碼僅僅是索引訪問:

var rows = (DataRowView)editingElement.DataContext; 
object obj = rows.Row[this.SelectedValuePath]; 

LINQ沒有這將使索引更好的任何功能,所以我覺得這是你能得到的最好。一個可能的醜陋的事情是,你得到object作爲結果,你需要將其轉換爲其他類型(例如CustomerInfo)。

如果您正在使用LINQ從一開始(來填充DataContext數據),你很可能寫這樣的事來訪問客戶:

var rows = (IEnumerable<CustomerInfo>)editingElement.DataContext; 
CustomerInfo info = rows.Row[this.SelectedValuePath]; 

這將是更優雅一點,因爲你只需要一個演員陣容。不過,我認爲你的代碼很好,LINQ不能幫你(在這段代碼中)。