在两个元组列表中找到匹配项,并使用ForLoops C#.Net 4将索引添加到另一个元组列表中

时间:2019-02-21 11:39:33

标签: c# list indexing find tuples

我有2个元组列表:

List<Tuple<double, int>> FH = new List<Tuple<double, int>>();

List <Tuple<double, int>> LastPriceBarNumber = new List <Tuple<double, int>> ();

,并且希望当两个列表中的Item2匹配时在FH中找到索引,并将其作为Item2添加到下面的元组列表中:(其Item1和Item3与上面的List LastPriceBarNumber中的Item1和Item2相同)

List<Tuple<double, int, int>> LastPriceIndexBarNumber = new List<Tuple<double, int, int>>();

因此,我创建了一个嵌套循环,以在列表FH和LastPriceBarNumber中找到匹配的Item2,以便在发生匹配时知道FH的索引。

for (int i = 0; i < LastPriceBarNumber.Count; i++)
        {
            for (int ii = 0; ii < FH.Count; ii++)
            {
                if (LastPriceBarNumber[i].Item2 == FH[ii].Item2)
                {
                    LastPriceIndexBarNumber.Add(Tuple.Create(LastPriceBarNumber[i].Item1, ii, LastPriceBarNumber[i].Item2));
                    break;
                }
            }
        }

不知道我在做什么错,但是当发生匹配时,ii不是FH的索引。

代码有什么问题?非常感谢您的帮助!

下面要测试的数据:

        FH.Add(Tuple.Create(2000.00, 200));
        FH.Add(Tuple.Create(1999.00, 210));

        FH.Add(Tuple.Create(2002.00, 220));
        FH.Add(Tuple.Create(2004.00, 240));
        FH.Add(Tuple.Create(2003.00, 260));
        FH.Add(Tuple.Create(2001.25, 270));

        FH.Add(Tuple.Create(2007.00, 320));
        FH.Add(Tuple.Create(2008.00, 340));

        LastPriceBarNumber.Add(Tuple.Create(1999.00, 210));
        LastPriceBarNumber.Add(Tuple.Create(2001.25, 270));
        LastPriceBarNumber.Add(Tuple.Create(2008.00, 340));

两个列表中匹配的Item2的FH索引应为:

1
5
7

并且ii不会在结果元组列表中添加这些值!

1 个答案:

答案 0 :(得分:0)

代码工作正常。 ii的值是:

1 
5 
7  

问题必须出在代码的另一部分。