从 C# 中的列表中删除列表项的属性
Posted
技术标签:
【中文标题】从 C# 中的列表中删除列表项的属性【英文标题】:Remove list items' property from list in c# 【发布时间】:2022-01-12 09:41:39 【问题描述】:我有一个这样的列表,我正在创建一个包含以下数据的 csv 文件,并且我想排除一些列,属性是列名
[
name: john, age: 25,
name: mark, age: 30,
]
我想在没有任何条件的情况下从列表项中删除年龄属性,只需删除该属性,所以我的新列表应如下所示,它将被排除在 csv 文件中
[
name: john,
name: mark,
]
【问题讨论】:
.Select(t => new t.name)
?
Removing 表示您要删除或隐藏该属性?
它会起作用,但我在一个项目中有 30 多个属性,我不想像这样手动创建项目,有更好的解决方案吗?
我要删除 Aslam
看起来像 XY 问题。为什么要删除属性?你能添加你现有的代码吗?
【参考方案1】:
这可能会对您有所帮助:
List<Employee> listEmployee= new List<Employee>([
name: john, age: 25,
name: mark, age: 30,
])
var reduceAgeFromList= listEmployee.Select(e => new e.name).ToList();
这种方式也对你有帮助,
public class Employee
public string name get; set;
[SkipProperty]
public string age get; set;
List<Employee> employee= new List<Employee>([
name: john, age: 25,
name: mark, age: 30,
])
var employee.Where(pi => pi.GetCustomAttributes(typeof(SkipPropertyAttribute), true).Length == 0).ToArray();
【讨论】:
它可以工作,但我在一个项目中有 30 多个属性,我不想像这样手动创建项目,有更好的解决方案吗? 我觉得 .Select 方式简单易用,使用 Automapper 和 class 也可以帮助您解决问题。访问:github.com/AutoMapper/AutoMapper/blob/master/docs/…【参考方案2】:有两种方法可用于获取列表中的数据。我们可以使用 lambda 表达式(或)使用 linq 进行查询。
使用 linq;
1) List<details> list= new List<details>()
var name = list.Where(a => a.name).ToList(); // fetch the data of
particular property
2) var name = from c in list
where c.name
select c;
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于从 C# 中的列表中删除列表项的属性的主要内容,如果未能解决你的问题,请参考以下文章