【发布时间】:2016-02-18 11:42:52
【问题描述】:
下面是一个类
public class Attribute
{
public string Name { get; set; }
public string Value { get; set; }
}
以下是我的 main 方法中的代码
{
var test = new List<Attribute>();
test.Add(new Attribute { Name = "Don", Value = "21" });
test.Add(new Attribute { Value = "34", Name = "Karthik" });
var test1 = new List<Attribute>();
test1.Add(new Attribute { Name = "Don", Value = "21" });
test1.Add(new Attribute { Value = "34", Name = "Karthik" });
var obj = new Program();
var areEqual1 = obj.CompareList<List<Attribute>>(test, test1);
}
我有一个 ComapreList 方法
public bool CompareList<T>(T firstList, T secondList) where T : class
{
var list1 = firstList as IList<T>;
return true;
}
现在,list1 为空。我知道.net 不允许我们这样做。但是有没有其他方法可以让我投射这个通用列表。我的目的是比较这两个列表的每个属性值。我正在使用反射来获取属性,但只有当我可以将 firstlist/secondlist 转换为可枚举的东西时它才有效。如果我直接在IList<> 中使用类的名称(firstList 作为IList<Attribute>)它可以工作,但如果我给<T> 则不行。请帮忙。
【问题讨论】: