我有一个名为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吗?
答案 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基础知识。这是一组非常清晰的例子