gpt4 book ai didi

c# - Linq 转换为列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:26 26 4
gpt4 key购买 nike

我有以下类(class):

public class Column
{
public String Name;
public String Value;
}

public class ColumnList : List<Column> {}

然后我做:

var cols = (from c in othercolumnlist
select new Column
{
Name = c.Name,
}).ToList() as ColumnList;

但是它返回空值。我怎样才能成功地转换到我的名单中?

最佳答案

ColumnListList<Column>但是List<Column>不是 ColumnList .考虑 AnimalDog类:

public class Animal
{
}

public class Dog: Animal
{
}

你要做的是把任何动物都当作狗来对待。但并非所有动物都是狗。可以有 CatKangaroo .这就是为什么 as ColumnList返回 null .

您需要创建新的 ColumnList改为实例并手动向其添加列:

var columnList = new ColumnList();
columnList.AddRange(othercolumnlist.Select(c => new Column { Name = c.Name }));

如果您需要经常这样做,那么您可以将静态创建方法添加到您的ColumnList类:

public static ColumnList CreateFrom(ColumnList other)
{
var columnList = new ColumnList();
columnList.AddRange(other.Select(c => new Column { Name = c.Name }));
return columnList;
}

并以这种方式使用它:

var columnList = ColumnList.CreateFrom(otherColumnList);

关于c# - Linq 转换为列表<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com