2017-01-10 84 views
-3

我試圖找到這個解決方案,但我無法找到它。這就是我在這裏問的原因。 :)Task.WhenAll返回列表而不是數組

我有任務的列表,它有兩個項目

List<Task<int>> tasks = new List<Task<int>>(); 
    tasks.Add(Task.FromResult(1)); 
      tasks.Add(Task.FromResult(2)); 

當我打電話等待Task.WhenAll(任務),它返回INT [],但我想它應該返回List<int>。如下所示:

List<int> result = await Task.WhenAll(tasks); 

我想在結果後添加新項目。

+0

,爲什麼你想要的? –

+0

我想在結果後在列表中添加新項目。 – Saadi

+0

如何使用'ToList()'調用將'array'轉換爲'List',簡單 –

回答

8

你可以寫:

List<int> result = (await Task.WhenAll(tasks)).ToList(); 

這將數組轉換到一個列表。

不要忘記添加命名空間:

using System.Linq; 
+0

它試圖「等待Task.WhenAll(任務).ToList();'它沒有工作。但我把這樣的括號'(等待Task.WhenAll(任務))。ToList();',它現在正在工作。謝謝! – Saadi

+0

@Saadi您是否使用編輯器來檢查Task.WhenAll(tasks)的返回類型,它將是一個Task類型,它不能使用ToList()轉換爲List。 –

相關問題