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