c# - Linq 查询到 IEnumerable<T> 扩展方法

标签 c# linq

考虑一下,

     class Item
     { 
        public string ID { get; set;}
        public string Description { get; set; }
     }

     class SaleItem
     { 
        public string ID { get; set;}
        public string Discount { get; set; }
     }


     var itemsToRemoved = (List<Item>)ViewState["ItemsToRemove"];
     // get only rows of ID
     var query = from i in itemsToRemoved select i.ID;

     var saleItems= (List<SaleItem>)ViewState["SaleItems"];
     foreach (string s in query.ToArray())
     {
            saleItems.RemoveItem(s);
     }

如何使用 IEnumerable/List Extension 方法编写此 LINQ 短语

  // get only rows of ID
   var query = from i in items select i.ID;

提前致谢。

最佳答案

那个很简单:

var query = items.Select(i => i.ID);

A select子句始终对应于对 Select 的调用.其他一些运算符最终得到了一个相当复杂的扩展 :) 如果你努力工作,你可以让编译器做一些事情 very odd stuff ...

您可以在 C# specification 的第 7.16 节中找到此查询表达式翻译和其他查询表达式翻译的所有详细信息。 (v3 或 v4)。

<plug> 您也可以购买 C# in Depth, 2nd edition如果你真的想阅读第 11 章:) </plug>

关于c# - Linq 查询到 IEnumerable<T> 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574692/

相关文章:

c# - 限制可以使用打开文件对话框选择的文件

c# - Linq to SQL 一对多关系

c# - 无法使用 Linq 查询删除 XmlElement

c# - 如何将谓词表达式分解为查询?

c# - 在设计时代码中使用模拟框架的缺点

c# - C#像指针一样对待数组

c# - 为什么 C# 不能解密 Perl 的 Crypt::Rijndael 的输出?

c# - 如何检查KeySelector中的属性名称?

.net - 使用 linq 选择组合

c# - LINQ To SQL、C#、MVC 4、模型助手中的连接问题