gpt4 book ai didi

c# - 将 List 转换为包含另一个 List 的另一个 List

转载 作者:太空狗 更新时间:2023-10-29 18:28:50 37 4
gpt4 key购买 nike

我有一个 Foo 列表:

class Foo {
public int Id { get; set; }
public String Name { get; set; }
}

我想把它转换成列表栏:

class Bar {
public int Id { get; set }
public List<String> NameList { get; set; }
}

Foo 中的数据如下所示:

Id     Name
-----------
1 Foo1
1 Foo2
1 Foo3
2 Foo3
2 Foo2
2 Foo1

我希望它看起来像这样:

Id      NameList
----------------
1 Foo1
Foo2
Foo3
2 Foo3
Foo2
Foo1

我这样做是为了更容易在 Razor 呈现的 Html 无序列表中显示。另外,如果有一种无需转换即可执行此操作的简单方法,请告诉我。

最终,我会像这样显示 Html:

<li>1
<ul>
<li>Foo1</li>
<li>Foo2</li>
<li>Foo3</li>
</ul>
</li>
<li>2
<ul>
<li>Foo3</li>
<li>Foo2</li>
<li>Foo1</li>
</ul>
</li>

到目前为止,我已经尝试了以下 Linq 代码,但没有成功

BarList = FooList.Select(x => new Bar() {
Id = x.Id,
NameList = x.Select(y => y.)
}).ToList();

最佳答案

使用 GroupBy

List<Bar> BarList = FooList.GroupBy(f => f.Id, f => f.Name, (id, names) => new Bar
{
Id = id,
NameList = names.ToList()
}).ToList();

关于c# - 将 List<T> 转换为包含另一个 List<T> 的另一个 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757332/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com