如何比较列表<string> aganist list <list <string>&gt;

时间:2017-10-07 17:44:04

标签: c# algorithm linq

///有效列表

    List<List<string>> newTestList = new List<List<string>>();
    t.Add(new List<string>() { "A", "A" });
    t.Add(new List<string>() { "B", "WILDCARD", "A" });
    List<string> testList = new List<string>() { "O", "A", "A", "B", "O", "A" };


        List<List<string>> t = new List<List<string>>();
        t.Add(new List<string>() { "A", "A" });
        t.Add(new List<string>() { "B", "W",  })
         t.Add(new List<string>() { "A","S" });
        List<string> cart = new List<string>() { "O", "A", "A", "B", "O", "A","S" };

//无效列表

        List<List<string>> t = new List<List<string>>();
        t.Add(new List<string>() { "A", "A" });
        t.Add(new List<string>() { "B", "W", "A","D" });
        List<string> cart = new List<string>() { "O", "A", "A", "B", "O", "A" };

              List<List<string>> t = new List<List<string>>();
        t.Add(new List<string>() { "A", "A" });
        t.Add(new List<string>() { "A","B", "W", "A","D" });
        List<string> cart = new List<string>() { "O", "A", "A", "B", "O", "A" };

如何将testList中的值与newTestList中的值进行comapre。

我想在testList中为coTpre值指定newTestList。 testlist中的第二个元素匹配与newTestList中第一个列表的第一个元素的匹配第3个元素与第二个元素匹配,第4个元素与newTestList中第二个列表的第一个元素匹配,因此它匹配testList中的所有元素序列。 &#34; WILDCARD&#34;可以匹配任何元素

1 个答案:

答案 0 :(得分:0)

很难确切地知道你要做什么,但如果你在使用LINQ对List<List<string>>使用LINQ时出现问题,请尝试使用var代替它并使用像一个简单的索引:

List<string> testList = new List<string>() { "A", "A", "A", "B", "O", "A" };
List<string> cart = new List<string>() { "O", "A", "A", "B", "O", "A", "S" };

        var Lists = new[]
        {
            testList,
            cart,
            new List<string>() { "A", "A" },
            new List<string>() { "A", "S" }
        };

        IEnumerable<int> answer = from x in Lists[0]
                                  join y in Lists[3] on x.IndexOf("A") equals y.IndexOf("A")
                                  select x.Length + y.Length;