2

OK、私は別のSOの質問に対する答えを得る過程にあり、intの個別のリストを取得するために次の関数を思いつきました:

    static List<Int32> Example(params List<Int32> lsts)
    {
        List<Int32> result = new List<int>();

        foreach (var lst in lsts)
        {
            result = result.Concat(lst).ToList();
        }

        return result.Distinct().OrderBy(c => c).ToList();
    }

varVS2012 で見ると、その型Int32は notと表示されていList<Int32>ます。ここに示されています:

問題

var は型であってはいけませんList<Int32>か??

4

3 に答える 3

9

[]パラメータ型宣言の最後にa がありません:

//                                            v-- this is missing in your code
static List<Int32> Example(params List<Int32>[] lsts)
{
    List<Int32> result = new List<int>();

    foreach (var lst in lsts)
    {
        result = result.Concat(lst).ToList();
    }

    return result.Distinct().OrderBy(c => c).ToList();
}
于 2012-11-22T13:55:06.043 に答える
5

別のコンパイラ エラーに惑わされています。
パラメータは配列ではありません。

params List<Int32>[] lstsリストの配列にするには、パラメータを に変更する必要があります。(または、さらに良いことに、params IEnumerable<Int32>[] lsts)

foreachループを完全に取り除いて書くこともできることに注意してください

return lsts.SelectMany(list => list)
           .Distinct()
           .OrderBy(i => i)
           .ToList();
于 2012-11-22T13:53:54.100 に答える
0

キーワードを持つパラメータparamsは配列でなければなりません。

于 2012-11-22T13:57:34.257 に答える