0

私はこれを理解するのに少し苦労しています。次の 2 つのプロパティを持つオブジェクトのリストがありますAliasValue

AliasプロパティがValue文字列値でグループ化されているこれらのオブジェクトのリストを表示する必要があります。このような:

MyAlias1, MyAlias2, MyAlias3
     - Value string which is the same for above three aliases

MyAlias4, MyAlias5
     - Value string which is the same for above three aliases

私がこれまでに持っているものは次のとおりです。

var groups = lst.GroupBy(x => new { x.Alias, x.Value });
foreach(var group in groups)
{
    @group.Value
}

しかし、実際にそれらをグループ化されたアイテムとして表示するには、そこから何をすべきかわかりません。

どんな助けでも大歓迎です!

4

2 に答える 2

1

値でグループ化する必要があると思います。次に、グループごとに必要なものを出力できます。

@{ var groups = lst.GroupBy(x => x.Value); }

@foreach (var group in groups)
{
    var aliasString = String.Join(",", group.Select(x => x.Alias));
    <p>@aliasString</p>
    <p>- @group.Key</p>
}
于 2013-03-16T09:42:16.840 に答える
0

グルーピングはこちら

var groups = lst.GroupBy(x => x.Value);

ここに表示されています

@foreach(var group in groups)
{
    <h3>@group.Key</h3>
    <ul>
    @foreach(var alias in group)
    {
        <li>@alias.Alias</li>
    }
    </ul>
}

ところで、コントローラーでViewModelを作成してから、ビューでLinqを実行する方が良いです:

public class FooViewModel
{
    public string Value { get; set; }
    public string Aliases { get; set; } // if you need concatenated string 
}

コントローラーで:

var model = from x in lst
            group x by x.Value into g
            select new FooViewModel {
               Value = g.Key,
               Aliases = String.Join(", ", g.Select(i => i.Alias))
            };
于 2013-03-16T09:39:20.363 に答える