选择一些记录

时间:2010-04-16 05:54:55

标签: c# .net linq linq-to-objects

我有IList<MyList>。我想LINQ保持相同的列表(相同的记录数),但我想减少或/和重命名一些记录。最后,我想IList<MyNewList>

更新(Marc Gravell请求) 我们有从Oracle存储过程生成接口/对象的工具。我的问题是,对于某些存储过程,会创建很多字段,正常情况下由数据库返回(并且更改数据库不是一个选项)。然后工具生成“Field1,Field2,Field3,Field4,......”但我想创建一个只有“Field2,Field4”的新列表。这个新列表将与GridView绑定。

3 个答案:

答案 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();

问候。