2

次の構造の2列のリストがあります。

50 process:3333
50 phone:xxxx
51 process:2222
51 phone:yyyy

この構造を持つ最初のリストに基づいて、新しいリストを作成する必要があります。

50 process:3333,phone:xxxx
51 process:2222,phone:yyyy

Listには、1つの列から同じ値を検索し、2番目の列の文字列を連結する方法がありますか。

または、foreachまたはwhileステートメントを使用して手動でそれを行う方法を見つける必要がありますか?

4

2 に答える 2

4

次のような単純な構造体を想定しています...

public struct Proc
{
    public int ID { get; set; }
    public string Value { get; set; }
}

サンプルデータを使用して:

var procList = new List<Proc>() { 
    new Proc{ID=50,Value="process:3333"},new Proc{ID=50,Value="phone:xxxx"},
    new Proc{ID=51,Value="process:2222"},new Proc{ID=51,Value="phone:yyyy"},
};

あなたが使用することができEnumerable.GroupByますString.Join

var procIdGroupList = procList
    .GroupBy(p => p.ID)
    .Select(g => new Proc
    {
        ID = g.Key,
        Value = string.Join(",", g.Select(p => p.Value))
    }).ToList();

デモ

于 2013-01-07T16:59:49.003 に答える
0

そのための回避策を見つけました:

//Recupera valores dos indices para o tipo de documento
                List<Gedi.Models.OperacoesModel.imports> valuesList = new List<Gedi.Models.OperacoesModel.imports>();
                var valuesListObj = from a in context.sistema_Documentos
                                    join b in context.sistema_Indexacao on a.id equals b.idDocumento
                                    join c in context.sistema_Indexes on b.idIndice equals c.id
                                    where a.ativo == 1
                                    select new
                                    {
                                        id = a.id,
                                        values = c.idName + ":" + b.valor
                                    };

                var çist = (from x in valuesListObj.AsEnumerable()
                            select new Gedi.Models.OperacoesModel.imports
                            {
                                id = x.id,
                                values = x.values
                            }).ToList();

                var importList = çist.GroupBy(p => p.id).Select(g => new Gedi.Models.OperacoesModel.imports
                                                                        {
                                                                            id = g.Key,
                                                                            values = string.Join(",", g.Select(p => p.values))
                                                                        }).ToList();
于 2013-01-07T18:01:23.993 に答える