You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何移除列表项的指定属性以在导出CSV时排除对应列

C# 移除列表对象指定属性的实现方案

根据你使用的对象类型不同,有几种常用的实现方式:


1. 强类型实体类场景

如果你预先定义了包含Name和Age的实体类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

直接用LINQ的Select方法投影为仅包含Name的对象即可,推荐用匿名类,不需要额外定义新类型:

// 原始数据
List<Person> originalList = new List<Person>
{
    new Person { Name = "john", Age = 25 },
    new Person { Name = "mark", Age = 30 }
};

// 处理后的列表,仅保留Name属性
var processedList = originalList.Select(p => new { p.Name }).ToList();

把processedList拿去生成CSV时,自然不会生成Age列。


2. 动态类型ExpandoObject场景

如果你的列表元素是动态的ExpandoObject类型,可以直接删除对应的属性键:

// 假设originalList是你已有的动态列表
List<ExpandoObject> originalList = new List<ExpandoObject>();

foreach (dynamic item in originalList)
{
    var dict = (IDictionary<string, object>)item;
    // 存在age属性就删除
    if (dict.ContainsKey("age"))
    {
        dict.Remove("age");
    }
}

3. JObject操作场景(Newtonsoft.Json)

如果你是从JSON反序列化得到的JArray/JObject集合,直接调用Remove方法删除属性即可:

// 原始JSON数组解析示例
JArray originalArray = JArray.Parse(@"[
 {""name"": ""john"", ""age"": 25},
 {""name"": ""mark"", ""age"": 30}
]");

foreach (JObject item in originalArray)
{
    item.Remove("age");
}

内容的提问来源于stack exchange,提问作者Mr. Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:54:01