嵌套LINQ查询2个列表

时间:2016-03-03 16:24:36

标签: c# xml linq nested-queries

我需要使用嵌套的linq查询来查找匹配的字符串。

我目前有两个包含字符串的列表,一个包含所有字符串,另一个只有3.我尝试了很多选项,但我只是不明白这些是如何工作的。

这可能是一个非常容易犯的错误,但我仍然是C#的新手,我每天都在学习。

这是我走了多远,但我被困在looseTracks错误。

public static void printTracks()
{

    List<string> allTracks = new List<string>(); 
    //This list is filled with strings (Track titles)
    List<string> looseTracks = new List<string>();

    Track track1 = new Track("Smells Like Teen Spirit", "Nirvana", "00:05:02");
    Track track2 = new Track("Come as You Are", "Nirvana", "00:03:38");
    Track track3 = new Track("Lithium", "Nirvana", "00:04:16");
    looseTracks.Add(track1.title);
    looseTracks.Add(track2.title);
    looseTracks.Add(track3.title);

    var query = from tr1 in allTracks
            from tr2 in tr1.looseTracks //Error!
            where tr1.Equals(tr2)
            select tr1;

    foreach (string s in query)
    {
        Console.WriteLine(s);
    }
}

错误给了我这个:

  

错误1'字符串'不包含'looseTracks'的定义,并且没有扩展方法'looseTracks'接受类型'string'的第一个参数可以找到(你是否缺少using指令或汇编引用?)C :\ Users \ Gebruiker \ Desktop \ workspace visual studio 2013 \ Practicum 4 \ Program.cs 104 45 Practicum 4

我必须使用嵌套查询,但我只是不知道如何。有人可以帮助我吗?

如果我忘了某件事,或者这不起作用,请告诉我!提前谢谢!

2 个答案:

答案 0 :(得分:0)

//Just imagine this list being filled with 'Track' objects

我会想象它没有充满了追踪&#39;对象。您将其定义为字符串列表,而不是轨道列表。

List<Track> allTracks = new List<Track>();
List<Track> looseTracks = new List<Track>();

答案 1 :(得分:0)

我想你想做点什么。

CellEditingTemplate

或者只是方法语法中的以下内容。

DatePicker

这假设var query = from tr1 in allTracks where looseTracks.Contains(tr1.title) select tr1; var query = allTracks.Where(tr1 => looseTracks.Contains(tr1.title)); allTracksList<Track>