2

3 つの List<> オブジェクトがあります。

List<T> listA = new List<t>();
List<T> listB = new List<t>();
List<T> listC = new List<t>();

listA と ListB を結合して ListC に割り当てる必要があります。

List<T> listC = new ListA +ListB;

私の質問は、それを実装する方法ですか?

4

6 に答える 6

7
    List<int> A = new List<int>();
    A.Add(1);
    A.Add(2);
    List<int> B = new List<int>();
    B.Add(3);
    B.Add(4);

    List<int> C = new List<int>();

    C = A.Union<int>(B).ToList<int>();
于 2012-10-13T14:06:21.203 に答える
4

これを試してくださいAddRange():-

    listC.AddRange(listA);
    listC.AddRange(listB);
于 2012-10-13T14:03:31.280 に答える
4

使用AddRange:

List<T> listA = new List<t>();
List<T> listB = new List<t>();
List<T> listC = new List<t>();

listC.AddRange(listA);
listC.AddRange(listB);
于 2012-10-13T14:02:45.807 に答える
3

ちょっとあなたの要件に依存しますが、次のように簡単かもしれません

listC.AddRange(listA);
listC.AddRange(listB);
于 2012-10-13T14:02:43.170 に答える
2

他の人がすでに述べたように使用するAddRangeか、前述のように両方を結合したい場合は、を提供しIEqualityComparer<T>て使用する必要がありますEnumerable.Union

List<Foo> third = first.Union(second, new FooComparer()).ToList();

実装例を次に示します。

public class FooComparer : IEqualityComparer<Foo>
{
    public bool Equals(Foo x, Foo y)
    {
        return x.Id == y.Id; // assuming that there's a value type like ID as key
    }

    public int GetHashCode(Foo obj)
    {
        return obj.Id.GetHashCode();
    }
}

Union は一意の値のみを返します。

于 2012-10-13T14:19:00.463 に答える
2
listC.AddRange(listA);
listC.AddRange(listB);
于 2012-10-13T14:02:45.773 に答える