1

私はこのような人のリストを持っています:

foreach (GridViewRow r in gv_contactList.Rows)
                        {
                            Person p = new Person();
                            p.Id = int.Parse(gv_contactList.DataKeys[r.RowIndex].Value.ToString());
                            p.Name = r.Cells[1].Text.TrimEnd();
                            p.Mobile = r.Cells[2].Text.TrimEnd();
                            p.Email = r.Cells[3].Text.TrimEnd();
                            p.Pkind = 1;//ToDo
                            plst.Add(p);

                        }

string[] 携帯電話番号が null または空でない同じ前のループで、携帯電話番号の配列を取得する方法。人のリストを再度ループして携帯電話番号を配列に入れる代わりに。

4

4 に答える 4

2
var mobiles = new List<string>();

foreach (GridViewRow r in gv_contactList.Rows) 
{ 
    ...
    p.Mobile = r.Cells[2].Text.TrimEnd(); 
    if (!String.IsNullOrEmpty(p.Mobile)) {
        mobiles.Add(p.Mobile);
    }
    ... 
} 

var mobilesArray = mobiles.ToArray();
于 2012-10-01T11:49:53.277 に答える
2

あなたが何を望んでいるのか本当にわかりません。しかし、Person List から文字列の電話番号の配列が必要な場合は、次のようにplstすることができます。

string[] phoneArray = plist
                          .Where(r=>string.IsNullOrWhiteSpace(r.Mobile))
                          .Select(r=>r.Mobile.ToString())
                          .ToArray();
于 2012-10-01T11:50:28.070 に答える
1

ArrayListbefore を宣言しますforeach

ArrayList<String> mobNums = new ArrayList<String>();

foreachに携帯電話番号を追加します。それに:

mobNums.Add(p.Mobile);

foreachそれを配列に変更した後:

String[] arr = mobNums.ToArray();
于 2012-10-01T11:52:08.153 に答える