我有IList<MyList>
。我想LINQ保持相同的列表(相同的记录数),但我想减少或/和重命名一些记录。最后,我想IList<MyNewList>
。
更新(Marc Gravell请求) 我们有从Oracle存储过程生成接口/对象的工具。我的问题是,对于某些存储过程,会创建很多字段,正常情况下由数据库返回(并且更改数据库不是一个选项)。然后工具生成“Field1,Field2,Field3,Field4,......”但我想创建一个只有“Field2,Field4”的新列表。这个新列表将与GridView绑定。
答案 0 :(得分:2)
您可以使用select(LINQ)执行此操作:
var newList = list.Select(x => TranformToMyNewList(x)).ToList();
答案 1 :(得分: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();
答案 2 :(得分:0)
在linq中,您可以创建匿名类型:http://msdn.microsoft.com/en-us/library/bb397696.aspx。它的用法是这样的:
var anonymousTypeList = (from row in list select new {Name=row.FullName,Address=StreetAddress}).ToList();
问候。