簡體   English   中英

lambda 表達式為 Enumerable.Select

[英]lambda expression for Enumerable.Select

我試圖弄清楚如何開始使用 linq 和 lambda 表達式。

首先,如果有人可以指導我一些好的教程,那將不勝感激。

第二:

我正在嘗試 select 使用 Select 方法等於特定值的所有值。

我注意到 select 可以定義為

Select<TSource,TResult>(...lambda expression...)  

現在為此目的,我想 select 所有等於 5 的數字。

int[] numbers = { 1, 2, 3, 4, 5, 5, 5, 6, 7, 8 };
IEnumerable<int> res = numbers.Select( x=>5 );    

這不起作用,我只是不明白這是如何工作的。 在什么情況下我應該定義TSourceTResult ,在這種情況下它們會是什么?

提前致謝!

Select()用於將舊序列的每個成員投影到新序列的新成員中。 要過濾,請使用Where()

var evens = numbers.Where(x => x % 2 == 0);
var theFiveSequence = numbers.Where(x => x == 5);

使用Select()的示例可能是將每個數字乘以 2:

var doubledNumbers = numbers.Select(x => 2*x);

您也可以將這些方法組合在一起:

var doubledNumbersLessThanTen = numbers.Select(x => 2*x).Where(x < 10);

關於 LINQ 要記住兩件重要的事情:

  1. 基本序列的元素(幾乎總是)被修改。 您從舊序列創建新序列。
  2. 您編寫的查詢會被延遲評估。 foreach循環中使用它們或調用.ToList().ToArray()等之前,你不會從它們那里得到結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM