0

人の名前のリストを並べ替えたいのですが、連絡先が名前に対応するように、同じインデックスを維持するために、連絡先の他のリストも並べ替える必要があります。私はこのクラスを持っています:

        List<string> name = new List<string>();
        List<string> cellphone = new List<string>();

        public void setName(string value)
        {
            name.Add(value);
        }
        public void setCellphone(string value)
        {
            cellphone.Add(value);
        }

        public List<string> getNames()
        {
            return name;
        }
        public List<string> getCellphones()
        {
            return cellphone;
        }

今、それらを並べ替えたいと思います。

例えば:

リスト 1: - ジョセフ - アンナ

リスト 2: - +351912345678 - +351931234567

結果は次のようになります。

リスト 1: - アンナ - ジョセフ

リスト 2: - +351931234567 - +351912345678

4

2 に答える 2

3

個人に関する情報を保持するには、単一のクラスを使用する必要があります。

質問へ: Zip + OrderBy + 2 *( Select + ToList ) は、同じ順序でソートされたリストを提供できます。何かのようなもの:

 var pairs = name.Zip(cellphone, (name, phone)=> new {name, phone})
     .OrderBy(item => item.name);

 name = pairs.Select(item => item.name).ToList();
 cellphone = pairs.Select(item => item.phone).ToList();
于 2013-07-02T22:24:02.273 に答える
0

2 つのリストではなく、辞書を使用する必要があります。ここを参照してください: http://www.dotnetperls.com/dictionary

于 2013-07-02T22:21:56.650 に答える