[英]How can I add an item to a IEnumerable<(T item, int? number)>?
所以,我有方法:
public static IEnumerable<(T item, int? number)> DoTheThing<T>(this IEnumerable<T> enumerable, int? someNumber)
基本上,在某些情況下,我需要從帶有添加數字的參數返回集合。 我創建了空集合來存儲數據,同時通過foreach
形成最終結果:
IEnumerable<(T item, int? number)> enumResult = Enumerable.Empty<(T item, int? number)>();
但我不知道如何向enumResult
添加值。 唯一我不能改變的事情 - 方法簽名,所以也許我完全做錯了。
接口的重點是你不需要知道關於列表來源的任何事情,只需要你可以枚舉它。 可能是該方法返回一個列表,即時計算元素或一次從互聯網讀取它們。
要添加值,您需要確保使用List<T>
:
var enumResult = new List<(T item, int? number)>();
enumResult.Add(...);
請注意, List
也是一個IEnumerable
,因此您仍然可以在需要IEnumerable
的任何地方使用enumResult
。
怎么樣
public static IEnumerable<(T item, int? number)> DoTheThing<T>(this IEnumerable<T> enumerable, int? someNumber){
foreach (T val in this){
yield return val;
}
if(someNumber.HasValue)
yield return someNumber.Value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.