选择一些记录
我有一个IList<MyList>
。我想与LINQ保持相同的列表(相同的记录数),但我想减少或/和重命名一些记录。最后我想有IList<MyNewList>
。选择一些记录
更新(Marc Gravell请求) 我们有从Oracle存储过程生成接口/对象的工具。我的问题是,对于某些存储过程,创建了很多字段,正常它由数据库返回(并且更改数据库不是选项)。然后工具生成“Field1,Field2,Field3,Field4,...”但我想创建一个只有“Field2,Field4”的新列表。这个新列表将绑定一个GridView。
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();
事实上,我需要从最初的列表中选择一些记录... – 2010-04-16 07:37:13
@Kris - 然后添加一个'where',或许使用'Single()'而不是'ToList() – 2010-04-16 08:38:21
你可以使用select(LINQ)做到这一点:
var newList = list.Select(x => TranformToMyNewList(x)).ToList();
在LINQ可以创建匿名类型:http://msdn.microsoft.com/en-us/library/bb397696.aspx。它的用法是这样的:
var anonymousTypeList = (from row in list select new {Name=row.FullName,Address=StreetAddress}).ToList();
问候。
我想你会需要澄清你的意思是“降低或/和重命名一些记录”在这里。也许写一些伪代码来说明? – 2010-04-16 05:58:51
更清晰,谢谢; -p – 2010-04-16 06:21:07