C# 如何在C中向另一个类类型列表添加类类型列表值
我有两个类类型列表,在这两个类中都有一些公共属性。如何将一个列表值添加到另一个列表值。我尝试过使用foreach循环,但无法访问第二类属性C# 如何在C中向另一个类类型列表添加类类型列表值,c#,C#,我有两个类类型列表,在这两个类中都有一些公共属性。如何将一个列表值添加到另一个列表值。我尝试过使用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 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实例,从标记实例复制所有属性,并将新的TagViewModel实例插入第一个列表。我想您可以将对象抽象到一个接口,然后添加接口
public interface ITag
{
int TagId { get; }
string TagName { get; }
string TagSlug { get; }
}
将接口添加到标记ViewModel&Tag
public class Tag: ITag
{
...
}
public class TagViewModel : Tag
{
...
}
并创建接口的列表
List<ITag> list1 = new List<ITag>();
我不认为他真的希望他们都在同一张名单上。TagViewModel列表将是所有标记的表示形式,其中添加了一个字段,可能是属性的INotifyPropertyChanged实现。这是一个很好的假设,但我想他只是问如何创建一个同时包含这两个属性的列表:是的,他这样做了。这个问题的答案很好,我肯定没有投反对票。我没有说,也没有假设你投了反对票:尽管知道为什么会投反对票会很有帮助:
foreach (var item in list1)
{
if (item is TagViewModel)
{
}
else if (item is Tag)
{
}
else
{
// something else but also at least ITag
}
}