2 个列表的嵌套 LINQ 查询
Nested LINQ query for 2 lists
我需要使用嵌套的 linq 查询来查找匹配的字符串。
我目前有 2 个包含字符串的列表,一个包含所有字符串,另一个只有 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);
}
}
错误提示:
Error 1 'string' does not contain a definition for 'looseTracks' and no extension method 'looseTracks' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?) C:\Users\Gebruiker\Desktop\workspace visual studio 2013\Practicum 4\Program.cs 104 45 Practicum 4
我必须使用嵌套查询,但我不知道如何使用。有没有人可以帮助我?
如果我忘记了什么,或者这不起作用,请告诉我!提前致谢!
//Just imagine this list being filled with 'Track' objects
我将想象它没有被 'Track' 物体填充。您将其定义为字符串列表,而不是曲目列表。
List<Track> allTracks = new List<Track>();
List<Track> looseTracks = new List<Track>();
我想你想做类似的事情。
var query = from tr1 in allTracks
where looseTracks.Contains(tr1.title)
select tr1;
或者只是方法语法中的以下内容。
var query = allTracks.Where(tr1 => looseTracks.Contains(tr1.title));
这是假设 allTracks
是 List<Track>
并且 looseTracks
是 List<string>
。
我需要使用嵌套的 linq 查询来查找匹配的字符串。
我目前有 2 个包含字符串的列表,一个包含所有字符串,另一个只有 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);
}
}
错误提示:
Error 1 'string' does not contain a definition for 'looseTracks' and no extension method 'looseTracks' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?) C:\Users\Gebruiker\Desktop\workspace visual studio 2013\Practicum 4\Program.cs 104 45 Practicum 4
我必须使用嵌套查询,但我不知道如何使用。有没有人可以帮助我?
如果我忘记了什么,或者这不起作用,请告诉我!提前致谢!
//Just imagine this list being filled with 'Track' objects
我将想象它没有被 'Track' 物体填充。您将其定义为字符串列表,而不是曲目列表。
List<Track> allTracks = new List<Track>();
List<Track> looseTracks = new List<Track>();
我想你想做类似的事情。
var query = from tr1 in allTracks
where looseTracks.Contains(tr1.title)
select tr1;
或者只是方法语法中的以下内容。
var query = allTracks.Where(tr1 => looseTracks.Contains(tr1.title));
这是假设 allTracks
是 List<Track>
并且 looseTracks
是 List<string>
。