【发布时间】:2015-07-14 13:16:00
【问题描述】:
我正在 C# 中试验 Zip 操作,如 here 所述。考虑到这段代码sn-p:
int[] numbers = new[] { 1, 2, 3, 4 };
string[] words = new string[] { "one", "two", "three", "four" };
var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
foreach (var nw in numbersAndWords)
{
Console.WriteLine(nw.Number + nw.Word);
}
如果其中一个组件是null,避免System.ArgumentNullException 的正确方法是什么?
比如初始化words为null,像这样
int[] numbers = new[] { 1, 2, 3, 4 };
string[] words = null;
// The next line won't work
var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
Obs:我实际上正在使用 Directory.EnumerateDirectories 和 Directory.EnumerateFiles 而不是 int[] 和 string[]。
【问题讨论】:
-
if 语句听起来如何?
if (a != null) ... -
旁注:由于不可预测的异常,目录/文件通常对 LINQ 不友好...确保您对此感到满意。
标签: c# arrays linq loops iteration