gpt4 book ai didi

c# - 从通用列表中删除属性/列

转载 作者:太空狗 更新时间:2023-10-29 20:51:48 27 4
gpt4 key购买 nike

由于某些原因,我无法更改查询,所以我必须在 C# 中执行此操作。

我有一个类:

public class myClass
{
int id { get; set; }
string name { get; set; }
DateTime sDate { get; set; }
bool status { get; set; }
}

我得到的数据是从这个列表中获取的。现在我想要的是从具有 null 值的列表中删除这些属性。我可能听起来很疯狂,但你没看错。我想创建另一个仅包含所选属性的列表,但上述任何属性都可以为 null。所以我必须设计一种机制来根据此过滤我的列表。

为了更清楚地考虑以下示例。

List<myClass> lstClass = some data source.

获取数据后,通用列表(lstClass)如下所示。考虑表中的结果集:

Id Name Sdate status
1 a null null
2 b null null
3 c null false

在删除属性 sdate 后,我能知道如何让我的列表看起来像这样吗?所以我要创建的新列表应该只有三个属性。

Id Name status
1 a null
2 b null
3 c false

有什么想法吗?我可以使用 Linq 执行此操作吗?

PS:这与演示无关。我没有网格,我无法在其中隐藏不是我要查找的列。

最佳答案

假设您有一个通用的 myClass 实例列表,您可以创建一个仅包含所需属性的匿名类型:

List<myClass> list = ...;
var reducedList = list.Select(e => new {e.id, e.name, e.status}).ToList();
// note: call to ToList() is optional

foreach (var item in reducedList)
{
Console.WriteLine(item.id + " " + item.name + " " + item.status);
//note: item does not have a property "sDate"
}

关于c# - 从通用列表中删除属性/列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110676/

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