我有一个List<Nodes.Node> nodes
来自JSON文件,每个对象除其他外还包含另一个List<Nodes.Item> items
列表;所说的Item
对象可以在整个nodes
列表中重复。我想从nodes
列表中创建第三个List<Nodes.Item> uniqueItems
,其中仅包含每个Nodes.Item
实例的单个副本。
我尝试过类似的操作,但是列表中有几个重复的Nodes.Item
对象:
public static List<Nodes.Item> GetItems(List<Node> nodes)
{
List<Nodes.Item> uniqueItems = new List<Item>();
foreach (var node in nodes)
{
foreach (var item in node.items)
{
if (!uniqueItems.Contains(item))
{
uniqueItems.Add(item);
}
}
}
return uniqueItems;
这是两个类:
public class Node
{
public string type { get; set; }
public string func { get; set; }
public List<Item> items { get; set; }
public int stars { get; set; }
public List<int> time { get; set; }
public string title { get; set; }
public string zone { get; set; }
public List<int> coords { get; set; }
public string name { get; set; }
public int uptime { get; set; }
public int lvl { get; set; }
public int id { get; set; }
public double patch { get; set; }
public string condition { get; set; }
public string bonus { get; set; }
}
public class Item
{
public string item { get; set; }
public int icon { get; set; }
public int id { get; set; }
public string slot { get; set; }
public string scrip { get; set; }
public Reduce reduce { get; set; }
}
我怀疑我在使用List.Contains()比较对象与对象时错了,也许LINQ是更好的方法,但是我找不到更好的解决方案。