这看起来应该很容易,但我想不出一个简洁的方法来做到这一点。
与类(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/