簡體   English   中英

如何將項目添加到 IEnumerable<(T item, int? number)>?

[英]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.

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