从 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# 中的列表中删除列表项的属性的主要内容,如果未能解决你的问题,请参考以下文章

删除列表中的重复对象 (C#)

从Dart列表中删除重复项的2种方法

C#从列表中删除重复的对象并首先增加

从列表创建组合,如果子字符串到分隔符字符位于列表项的 1 个以上的子元素中,则从列表中删除

从对象列表中的属性中删除空格? [复制]

如何将列表的子集添加到另一个列表中的对象的属性-最佳/最快的做法