-1

私はこれを持っています:

class MyContact
{
    public string firstname { get; set; }
    public string lastname { get; set; }
}

MyContact c1 = new MyContact() { firstname = "Filipe", lastname = "Silva" };
MyContact c2 = new MyContact() { firstname = "Filipe", lastname = "Oliveira" };
MyContact c3 = new MyContact() { firstname = "Maria", lastname = "Santos" };
MyContact c4 = new MyContact() { firstname = "Jose", lastname = "Ricardo" };
MyContact c5 = new MyContact() { firstname = "Joao", lastname = "Roberto" };
MyContact c6 = new MyContact() { firstname = "Joao", lastname = "Augusto" };
MyContact c7 = new MyContact() { firstname = "Joao", lastname = "Mario" };

var cList = new List<MyContact>();
cList.AddRange(new MyContact[] { c1, c2, c3, c4, c5, c6, c7 });

そして、すべての姓をグループ化し、すべての姓を連結する必要があります。

これは私の期待される結果です:

Filipe - Silva|Oliveira
Maria - Santos
Jose - Ricardo
Joao - Roberto|Augusto|Mario
4

2 に答える 2

0

Dictionary を使用した別のオプション:

var concat = new Dictionary<string, string>();
foreach (MyContact c in cList)
{
    if (concat.ContainsKey(c.firstname))
       concat[c.firstname] += "|" + c.lastname;
    else
       concat.Add(c.firstname,c.lastname);
}

姓と名を分けておきたい場合に役立つかもしれません

于 2013-08-13T13:41:16.003 に答える