2010-04-16 99 views
1

我有一個IList<MyList>。我想與LINQ保持相同的列表(相同的記錄數),但我想減少或/和重命名一些記錄。最後我想有IList<MyNewList>選擇一些記錄

更新(Marc Gravell請求) 我們有從Oracle存儲過程生成接口/對象的工具。我的問題是,對於某些存儲過程,創建了很多字段,正常它由數據庫返回(並且更改數據庫不是選項)。然後工具生成「Field1,Field2,Field3,Field4,...」但我想創建一個只有「Field2,Field4」的新列表。這個新列表將綁定一個GridView。

+0

我想你會需要澄清你的意思是「降低或/和重命名一些記錄」在這裏。也許寫一些僞代碼來說明? – 2010-04-16 05:58:51

+0

更清晰,謝謝; -p – 2010-04-16 06:21:07

回答

1
var newList = (from item in oldList 
       select new { item.Field2, item.Field4}).ToList(); 

或爲自己的類型:

IList<MyNewList> newList = (
     from item in oldList 
     select new MyNewList {Field2=item.Field2,Field4=item.Field4}).ToList(); 
+0

事實上,我需要從最初的列表中選擇一些記錄... – 2010-04-16 07:37:13

+0

@Kris - 然後添加一個'where',或許使用'Single()'而不是'ToList() – 2010-04-16 08:38:21

2

你可以使用select(LINQ)做到這一點:

var newList = list.Select(x => TranformToMyNewList(x)).ToList();