gpt4 book ai didi

C#,将列转换为列表中的一行

转载 作者:行者123 更新时间:2023-11-30 21:52:16 25 4
gpt4 key购买 nike

好的,情况是这样的:我有一个使用 .Select().ToList() 功能返回对象列表的 C# 分部类。

我知道它是如何工作的。

不过,我遇到的问题是我需要在一列中使用类中的四个属性。为了使这一点更加复杂,每一列都应该与一行相关联,这会显示大量冗余信息。

一个例子有帮助:

我目前有这个,比方说,作为我的类(class):

public class MyClass{
public string PersonName {get;set;}
public string PersonAddress {get;set;}
public string Field1 {get;set;}
public string Field2 {get;set;}
public string Field3 {get;set;}
public string Field4 {get;set;}
}

这让您对我的类(class)有一个基本的了解。我最初的建议是在执行此操作的位置设置代码:

<table>
<tr>
<td>Name</td>
<td>Address</td>
<td>Field 1<br>Field 2<br>Field 3<br>Field 4</td>
</tr>
</table>

这是有道理的。

但是,我上面的那些人已经决定他们想要这样的布局:

<table>
<tr>
<td>Name</td>
<td>Address</td>
<td>Field 1</td>
</tr>
<tr>
<td>Name</td>
<td>Address</td>
<td>Field 2</td>
</tr>
<tr>
<td>Name</td>
<td>Address</td>
<td>Field 3</td>
</tr>
<tr>
<td>Name</td>
<td>Address</td>
<td>Field 4</td>
</tr>
</table>

如果您注意到,姓名和地址对于每一行都是冗余

那么,我如何在 C# 中执行此操作?

最佳答案

您可以使用 LINQ SelectMany method生成一个列表,每个 MyClass 对象包含 4 个对象,如下所示:

List<MyClass> list = ...

var result = list.SelectMany(x =>
new[]
{
new {x.PersonAddress, x.PersonName, Value = x.Field1},
new {x.PersonAddress, x.PersonName, Value = x.Field2},
new {x.PersonAddress, x.PersonName, Value = x.Field3},
new {x.PersonAddress, x.PersonName, Value = x.Field4}
}).ToList();

这将返回匿名类型对象的列表。

这些对象中的每一个都将包含一个 PersonAddress、一个 PersonName 和一个 Value 属性。

然后您可以遍历它们以生成您想要的 HTML。

关于C#,将列转换为列表中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34930965/

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