我无法理解为何使用委托:
List<string> temp_list = new List<string>();
string[] temp_array;
temp_array = Array.ConvertAll(arr_DL[m], delegate (int j) { return j.ToString(); });
temp_list.AddRange(temp_array.ToList());
代码应该将数组转换为列表。 有人可以在这里帮助解释代表的使用吗?
答案 0 :(得分:1)
这是因为它是ConvertAll方法的第二个参数。它表示初始Array
中每个元素应如何转换:
转换器&lt; TInput,TOutput&gt;将每个元素从一种类型转换为另一种类型。
因此,您的代表sais&#34;通过执行int
&#34;
j
string
转换为j.ToString();
答案 1 :(得分:1)
这部分:
delegate (int j) { return j.ToString(); }
创建所谓的“匿名方法”作为第二个参数TOutput
,用于将int变量输入转换为String,然后将其传递给Array.ConvertAll()
方法。在C#2.0上广泛使用的匿名方法,在C#3.0中,它们用lambda表达式代替:
delegate String output (int j);
String output = x => { x.ToString(); }
参考:https://msdn.microsoft.com/en-us/library/bb882516.aspx
CMIIW。