📜  通过 LINQ 在列表中查找项目 - C# (1)

📅  最后修改于: 2023-12-03 14:58:02.570000             🧑  作者: Mango

通过 LINQ 在列表中查找项目 - C#

在C#中, LINQ (Language-Integrated Query)是一个功能强大的工具,可以用于从各种数据源中查询数据,包括列表。

本文将介绍如何在列表中使用LINQ查询数据,并提供相应的C#代码片段作为示例。

查询列表中的项目

首先,需要创建一个列表,并添加一些项目:

List<string> myList = new List<string>();
myList.Add("apple");
myList.Add("banana");
myList.Add("orange");
myList.Add("grape");

接下来,可以使用LINQ查询列表中的项目。使用 Where() 方法,并传递一个Lambda表达式作为参数,来查询满足某些条件的项目。

例如,查询以字母 "a" 开头的项目:

var results = myList.Where(item => item.StartsWith("a"));
foreach(var item in results)
{
    Console.WriteLine(item);
}

结果将显示列表中以字母 "a" 开头的项目:

apple

另一个示例是查询长度超过5个字符的项目:

var results = myList.Where(item => item.Length > 5);
foreach(var item in results)
{
    Console.WriteLine(item);
}

结果将显示列表中长度超过5个字符的项目:

banana
orange
查询项目和属性

在某些情况下,需要查询列表中的项目和它们的一些属性。例如,查询长度超过5个字符的项目和它们的长度:

var results = myList.Where(item => item.Length > 5)
                    .Select(item => new { Name = item, Length = item.Length });

foreach(var item in results)
{
    Console.WriteLine("{0} ({1})", item.Name, item.Length);
}

结果将显示列表中长度超过5个字符的项目和它们的长度:

banana (6)
orange (6)

该示例中,使用了 Select() 方法选择要查询的属性。

查询单个项目

要查询列表中的单个项目,可以使用 First()FirstOrDefault()Single()SingleOrDefault() 方法之一。

例如,查询列表中第一个以字母 "a" 开头的项目:

string result = myList.FirstOrDefault(item => item.StartsWith("a"));
if(result != null)
{
   Console.WriteLine(result);
}

结果将显示列表中第一个以字母 "a" 开头的项目:

apple
查询多个属性

在某些情况下,需要查询多个属性并以一种特定的方式组合它们。例如,将字符串列表中的项目和它们的长度组合成一个新的字符串:

var results = myList.Select(item => string.Format("{0} ({1})", item, item.Length));
foreach(var item in results)
{
    Console.WriteLine(item);
}

结果将显示列表中所有的项目和它们的长度:

apple (5)
banana (6)
orange (6)
grape (5)

此示例中,使用 Select() 方法选择要查询的属性,并使用 string.Format() 将它们组合成一个新的字符串。

总结

通过LINQ在C#中查询列表是一个简单而强大的工具,有助于快速检索数据。要在列表中查询数据,可以使用 Where() 方法查询符合特定条件的项目;使用 Select() 方法选择要查询的属性;使用 First()FirstOrDefault()Single()SingleOrDefault() 方法查询单个项目。