リストの内容を別のリストに追加するC#


157

私は以下を持っています:

  1. GlobalStringsと呼ばれるメインリスト
  2. localStringsと呼ばれる別のリスト

たとえばループでは:

List<string> GlobalStrings = new List<string>(); 
List<string> localStrings = new List<string>();
for(x=1;x<10;x++)
{
    localStrings.Add("some value"); 
    localStrings.Add("some value");
}
// Want to append localStrings to GlobalStrings as easily as possible


2
あなたはそれを間違っています、ループのlocalStrings = new List<string>;前に置くべきですfor
Wassim AZIRAR

1
ワッシム、それが彼がローカルとグローバルを区別する理由だと思います。localStringsはforループスコープに対してローカルであり、GlobalStringsはグローバルスコープ内にあります。
ダグルームズ2015年

これは、以来、明らかにあなた可能性だけで、(招待状が全くワッシムのようなコメントをwrongheadedこと)が悪い例ですAddGlobalStringsの代わりにlocalStrings。ループするFWIWは9回しか実行されません。ベターだろうfor (int x = 0; x < 10; ++x) {var localStrings = GetAListOfStrings(); /* append those to GlobalStrings */}
ジム・Balter

回答:


256
GlobalStrings.AddRange(localStrings);

注:インターフェイス(IList)を使用してリストオブジェクトを宣言することはできません。
ドキュメント:List<T>.AddRange(IEnumerable<T>)


55
GlobalStrings.AddRange(localStrings);

うまくいきます。

ドキュメント:List<T>.AddRange(IEnumerable<T>)


2
1人のキャラクターが賛成票を失いました。警告されます、それはしばしばあなたをはるかに失います!(睡眠や正気のように。)
deed02392 2013

正しいが、この答えは現在、リーの答えの複製として立っています。
・クール

22

AddRange-methodを試してください:

GlobalStrings.AddRange(localStrings);

正しいが、この答えは現在、リーの答えの複製として立っています。
・クール

9

Linqを使用

var newList = GlobalStrings.Append(localStrings)

3
追加が存在しないようですか?そのためのMSDNドキュメントへのリンクはありますか?
ポッド2016年

2
たぶん、あなたはConcatを意味していたのかもしれませんが、それは大量のコピーを意味し、LINQを使用しない方法の良い例です。
ジムBalter

5

これが私の例です:

    private List<int> m_machinePorts = new List<int>();

    public List<int> machinePorts
    {
        get { return m_machinePorts; }
    }

    Init()
    {
        // Custom function to get available ethernet ports
        List<int> localEnetPorts = _Globals.GetAvailableEthernetPorts();

        // Custome function to get available serial ports
        List<int> localPorts = _Globals.GetAvailableSerialPorts();

        // Build Available port list 
        m_machinePorts.AddRange(localEnetPorts);
        m_machinePorts.AddRange(localPorts);
     }

2

「簡潔」にしたい場合:)

List<string>GlobalStrings = new List<string>(); 

for(int x=1; x<10; x++) GlobalStrings.AddRange(new List<string> { "some value", "another value"});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.