如何从LINQ中选择集合?

时间:2012-02-22 06:04:26

标签: c# linq

我有一个名为menuItems的IList集合。

这是我的MenuItem类:

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

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

4 个答案:

答案 0 :(得分:2)

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});

答案 1 :(得分:0)

使用System.Linq命名空间中的类,您可以执行以下操作:

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

答案 2 :(得分:0)

是的,你必须使用“System.Linq”,你会找到一组菜单项目的扩展名。

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

答案 3 :(得分:0)

类似的东西:

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基础知识。这是一组非常清晰的例子