2016-05-25 10 views
-1

私はまったく新しいC#です。申し訳ありませんが、何か意味のない人がいますが、どうすればこのような状況を解決できますか?arraylistに2つの配列リストの値を追加するC#

私は下図のように2つのArrayListの持つ:今、私は私が

ArrayList NewList = new ArrayList(); 

NewList.Add(oldlink, newLink); 
+2

もしあなたがC#を初めて使っているのであれば、あなたの上司がガンポンをかけられない限り、あなたは決して 'ArrayList'を使うことはなかったと指摘したいと思います。私たちがジェネリック薬を持っていなかった野蛮な時代の古代遺物です。より賢明な 'System.Collections.Generic'名前空間(ヒント:' List ')を見てください! – kai

+0

@ Kai-指摘してくれてありがとうございます。確かにそれを通過するでしょう:) – coder

+0

キー値のペアを使用しませんか? 'Dictionary'のように? –

答えて

1
ArrayList NewList = new ArrayList(); 
NewList.AddRange(OldLinks); 
NewList.AddRange(NewLinks); 
としてそれを取得する必要がある2つの項目それぞれ

を持つ単一のArrayListとしてそれらを取得する必要があります

ArrayList OldLinks = new ArrayList(); 
ArrayList NewLinks = new ArrayList(); 
ArrayList mylist = new ArrayList(); 

foreach (string oldlink in OldLinkArray) 
    { 
     OldLinks.Add(oldlink); 
    } 
foreach (string newlink in NewLinkArray) 
    { 
     NewLinks.Add(newlink); 
    } 

AddRange()メソッドまたはAddAll()メソッドを使用してこれを満たすことができます。あなたは、両方のArrayListは同じカウント

+0

@ Pushpendra-ありがとうあなたの答えは、どのように私は1つのarraylistのすべてのように、その配列から古いリンクと新しいリンクを取得するのですか?私はそれらを得るには、b – coder

+0

私はあなたのためのコードを更新しました。 ArrayListはマルチディメンション配列のように2つのデータを保持できません。あなたがおそらくできることは、辞書を継承することですそれを使用してリストを作成するか、単に新しいリストにそれを追加する前に両方のarrayListの値を組み合わせることができます – Pushpendra

0

Xouはこのような何かを行うことができます。..文字列バージョンがproblabyではありません持って提供辞書

public class MultiDimList: Dictionary<string, string> { } 
MultiDimList NewList = new MultiDimList(); 
for(int i; i<OldLinks.Count ; i++) 
{ 
    NewList.Add(OldLinks[i].ToString(), NewLinks[i].ToString()); 
} 

を使用することができます多次元配列リストを作成するには

NewList.AddAll(OldLinks); 
NewList.AddAll(NewLinks); 

または 最高のソリューションですが、動作することができます。申し訳ありませんが、コードは、ノートでは、あなたがた配列リストの項目として一緒oldlinknewlinkの両方が必要として、あなたはZipLinq拡張子を使用してこれを行うことが

List<Link> linkList = new List<Link>(); 
    linkList.AddRange(OldValues) 
    linkList.AddRange(OldValues) 

    var oldList = linkList.Where(l => l.Version.Equals("old")).ToList(); 
    var newList = linkList.Where(l => l.Version.Equals("new")).ToList() 
+0

@Dmitry Bychenko編集のおかげで –

0

のようにそれを使用し

public class Link 
    { 
    public string Version {get;set;} 
    public string Value {get;set;} 
    } 

をテストしています。

ArrayList NewList = new ArrayList(); 
NewList.AddRange(OldLinks.Cast<string>() 
         .Zip(NewLink.Cast<string>(), (x,y) => string.Format("{0},{1}",x,y)) 
         .ToArray() 
       ); 

結果ArrayListは両方(oldlink, newlink)が含まれています。

関連する問題