如何在 C# 中将类类型列表值添加到另一个类类型列表
本文关键字:列表 类型 添加 另一个 | 更新日期: 2023-09-27 18:34:08
我有两个类类型列表,这两个类都有一些共同的属性。我们如何将一个列表值添加到另一个列表值。我已经尝试过使用 foreach 循环,但我无法访问二等属性。
public class TagViewModel
{
public int TagId { get; set; }
public string TagName { get; set; }
public string TagSlug { get; set; }
public bool IsChecked { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public string TagName { get; set; }
public string TagSlug { get; set; }
}
使用上面的类,我创建了两个列表
清单一
List<TagViewModel> list1 = new List<TagViewModel>();
目录二
List<Tag> list2 = new List<Tag>();
我必须将值从列表 2 添加到列表 1。
任何人都可以帮助我;
你不能
这样做。这是两种不同的类型。您可以做的是创建一个新的 TagViewModel
实例,从Tag
实例复制所有属性,并将新的TagViewModel
实例插入到第一个列表中。
我想您可以将对象抽象到接口,然后添加接口?
public interface ITag
{
int TagId { get; }
string TagName { get; }
string TagSlug { get; }
}
将接口添加到您的 TagViewModel & Tag
public class Tag: ITag
{
...
}
public class TagViewModel : Tag
{
...
}
并创建接口列表
List<ITag> list1 = new List<ITag>();
您现在可以在其中添加 ITag 接口(因此也可以将 TagViewModel 作为 Tag)
之后,您可以使用以下方法检查项目是Tag还是TagViewModel:
foreach (var item in list1)
{
if (item is TagViewModel)
{
}
else if (item is Tag)
{
}
else
{
// something else but also at least ITag
}
}