c# - 将List复制到另一个List,但不包括List类型的某些属性

标签 c# list dynamic anonymous-types

这看起来应该很容易,但我想不出一个简洁的方法来做到这一点。

与类(class)

class SomeType
{ 
   public int SomeInteger {get;}
   public string SomeString {get;}
   public object SomeObject {get;}
}

假设从某处检索到 SomeType 列表,但我需要从列表中的每个项目中删除 SomeString 字段。所以我遍历列表,创建一个匿名类型并将其添加到新列表。

List<SomeType> list = GetList();

var newList = new List<dynamic>();
list.ForEach(item => newList.Add(new { SomeInteger = item.SomeInteger, SomeObject = item.SomeObject });

有没有更好的方法不需要我创建动态类型的空列表?我可能是错的,但感觉这不是最好的方法。

最佳答案

你可以直接创建一个匿名类型的列表,这将是强类型的:

list.Select(item => new 
                    { 
                        SomeInteger = item.SomeInteger, 
                        SomeObject = item.SomeObject
                    }).ToList();

关于c# - 将List复制到另一个List,但不包括List类型的某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510235/

相关文章:

apache-flex - 在 AS3 中组合/合并动态对象

c# - 如何在 If 语句中包含 HTML

c# - 为什么这个方法需要递归?

python - 如何系统地将列表中的一个数字与列表的其余部分进行比较 [Python]

r - 迭代地将新列添加到数据框列表中

javascript - 当列有输入字段时,将 Html Table 转换为 Json,l输入文本或选择

c# - 有没有办法在 for C# 中读取多个文本框

c# - 我怎样才能使 WinForms TabPage 标题宽度适合它的标题?

r - 如何在 R 中创建单分支实体/死胡同的外部叶列表?

video - 如何在 youtube api v3 的播放列表中动态加载最新的 youtube 视频?