如何从LINQ集合中选择?

问题描述:

我有一个名为menuItems的IList集合。如何从LINQ集合中选择?

这里是我的MenuItem类:

public class MenuItem 
    { 
     public string PartitionKey { get; set; } 
     public string RowKey { get; set; } 
     public string Order { get; set; } 
    } 

如何从这个集合中选择订单时PartitionKey = "00"RowKey = "20"。我可以使用LINQ吗?

var result = menuItemsCollection 
    .Where(mnu=>mnu.RowKey=="20" && mnu.PartitionKey=="00") 
    .Select(mnu=>mnu.Order); 

此查询的结果将是一个IEnumerable<string>,因为那是Order领域是什么。

Where()将集合过滤为您想要的项目。 Select()选择什么是'返回'。你可以选择撰写一个完全不同的对象,例如:

var result = menuItemsCollection 
    .Where(mnu=>mnu.RowKey=="20" && mnu.PartitionKey=="00") 
    .Select(mnu=> 
     new SomeOtherClass{Order=mnu.Order, RowKey=mnu.RowKey, RunOn=DateTime.Now}); 

在System.Linq的命名空间中使用类,你可以做到以下几点:

var orders = menuItems 
    .Where(menuItem=>menuItem.PartitionKey=="00" && menuItem.RowKey=="20") 
    .Select(menuItem=> menuItem.Order) 

是的,您必须使用“System.Linq的“并且您将为您的菜单项列表找到一组扩展名。

IList<MenuItem> list = ... 
var orders = list.Where(item=>item.PartitionKey=="00" && item.RowKey=="20").Select(item => item.Order); 

喜欢的东西:

var orders = from item in menuItems 
where item.PartitionKey == "00" && item.RowKey == "20" 
select new { Order = item.Order}; 

尝试寻找在http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b学习LINQ基础。这是一组非常清晰的例子