📅  最后修改于: 2023-12-03 14:58:02.570000             🧑  作者: Mango
在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()
方法查询单个项目。