【发布时间】:2013-04-20 06:52:04
【问题描述】:
我有两个列表。其中内容为简单字符串值。例如:
IList1 内容:
- 复仇者联盟
- 快门岛
- 开始
- 黑暗骑士崛起
列表2内容:
- 复仇者联盟
- 快门岛
- 开始
- 黑暗骑士崛起
- 公园和娱乐场所
- 丑闻
我想比较两个列表,它会返回不匹配的值。就像在这种情况下,它将返回“Parks and Recreation”和“Scandal”,因为它们与 List1 的值不匹配。
我试过了。但它会抛出异常“对象引用未设置为对象的实例”。
static void Main(string[] args)
{
List<string> list1 = new List<string>();
list1.Add("The Avengers");
list1.Add("Shutter Island");
list1.Add("Inception");
list1.Add("The Dark Knight Rises");
List<string> list2 = new List<string>();
list2.Add("The Avengers");
list2.Add("Shutter Island");
list2.Add("Inception");
list2.Add("The Dark Knight Rises");
list2.Add("Parks and Recreation");
list2.Add("Scandal");
try
{
List<string> difference = Comparator(list1, list2);
foreach (var value in difference)
{
Console.WriteLine(value);
}
}
catch (System.NullReferenceException e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
public static List<string> Comparator(List<string> list1, List<string> list2)
{
IEnumerable<string> differenceQuery = list1.Except(list2);
List<string> differ = null;
foreach (string s in differenceQuery)
differ.Add(s);
return differ;
}
谁能帮帮我? 提前致谢。
【问题讨论】:
-
List<string> differ = new List<string>(); -
在Comparator方法里面,改变List
diff = null;对于 List 不同 = new List (); -
List<string> differ = null;// 你的错误来自这里。 -
元素的顺序或出现次数是否与所需结果相关?
-
List
不同 = new List ();