LINQ(Language Integrated Query,语言集成查询)是.NET框架中的一种查询技术,它允许开发者以声明性方式编写查询,并且可以在多种数据源上执行这些查询。Where
子句是LINQ中用于筛选数据的关键字,它允许你指定一个条件,只有满足该条件的元素才会被包含在查询结果中。
Where
子句可以让你的代码更加简洁和易读,因为它明确表达了你的意图。Where
子句可以用于任何实现了IEnumerable<T>
接口的集合类型,其中T
是集合中元素的类型。
当你需要从一个集合中筛选出满足特定条件的元素时,可以使用Where
子句。例如,从一个包含多个Person
对象的列表中筛选出所有年龄大于30岁的人。
以下是一个使用Where
子句筛选子字符串的示例:
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 35 },
new Person { Name = "Charlie", Age = 30 }
};
// 使用Where子句筛选出名字中包含"li"的Person对象
var filteredPeople = people.Where(p => p.Name.Contains("li"));
foreach (var person in filteredPeople)
{
Console.WriteLine(person.Name);
}
}
}
Where
子句中的子字符串筛选没有返回预期结果?原因:
解决方法:
String.Equals
方法并指定StringComparison.OrdinalIgnoreCase
来进行不区分大小写的比较。Trim
方法去除字符串两端的空格,使用正则表达式去除特殊字符。var filteredPeople = people.Where(p => p.Name.IndexOf("li", StringComparison.OrdinalIgnoreCase) >= 0);
通过以上信息,你应该能够更好地理解和使用LINQ中的Where
子句进行子字符串筛选。
领取专属 10元无门槛券
手把手带您无忧上云