【发布时间】:2018-11-25 09:04:56
【问题描述】:
我目前有 2 个列表要比较,它们的长度永远不会相等。
List<int> data,长度为 n
List<int> numbersToSeekFor,长度为 n,包含 data 中所有不同值的集合
List<Color> colorsToAssign的长度与numbersToSeekFor相同
我想要实现但不是很成功的是将data 中的所有项目与numbersToSeekFor 的每个索引进行比较。如果此条件为真,colorsToAssign 中的第一个 index 将被添加到列表中,然后是第二个索引,依此类推...
下面的一个非常愚蠢的例子就是这个方法。如果我假设numbersToSeekFor 中有 3 个元素。此方法的输出列表也应与data 大小相同。
public List<Color> Foo(List<int> data, List<int>numbersToSeekFor, List<Color> colorsToAssign)
{
List<Color> colors = new List<Color>();
for (int i = 0; i < data.Count; i++)
{
if(data[i] == numbersToSeekFor[0])
{
colors.Add(colorsToAssign[0]);
}
if(data[i] == numbersToSeekFor[1] )
{
colors.Add(colorsToAssign[1]);
}
if(data[i] == numbersToSeekFor[2])
{
colors.Add(colorsToAssign[2]);
}
}
return colors;
}
实现这一目标的最干净的方法是什么?
感谢您的帮助
【问题讨论】:
-
一方面说
which will never have equal length似乎也很矛盾,但后来List<int> data which is of n length和List<int> numbersToSeekFor which is of n length,所以两者的长度n好像一样?
标签: c# list comparison