我有两个类类型列表,在这两个类中都有一些共同的属性。我们如何向其他人添加一个列表值。我已经尝试使用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>();
清单II
List<Tag> list2 = new List<Tag>();
我必须将list2中的值添加到list1。
任何人都可以帮助我;
答案 0 :(得分:0)
你不能这样做。这是两种不同的类型。您可以做的是创建TagViewModel
的新实例,从Tag
实例复制所有属性,并将新的TagViewModel
实例插入到第一个列表中。
答案 1 :(得分:0)
我猜你可以将对象抽象到接口,然后添加接口吗?
public interface ITag
{
int TagId { get; }
string TagName { get; }
string TagSlug { get; }
}
将接口添加到TagViewModel&amp;标签
public class Tag: ITag
{
...
}
public class TagViewModel : Tag
{
...
}
并创建接口列表
List<ITag> list1 = new List<ITag>();
您现在可以在其中添加ITag界面(以及TagViewModel作为标签)
然后你可以检查一个项目是Tag还是TagViewModel:
foreach (var item in list1)
{
if (item is TagViewModel)
{
}
else if (item is Tag)
{
}
else
{
// something else but also at least ITag
}
}