c# Linq常用的小技巧

C# Linq常用的小技巧

1. 使用var关键字进行类型推断

在使用Linq时,可以使用var关键字进行类型推断,减少代码的冗余,并提高代码的可读性。

var numbers = new List<int> { 1, 2, 3, 4, 5 };

var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();

在上面的例子中,我们使用var关键字声明了一个名为numbers的List<int>,并使用Where方法筛选出偶数,然后使用ToList方法将结果转换为List。

2. 使用OrderBy和ThenBy对集合进行排序

通过OrderBy和ThenBy方法,可以对集合进行排序。

OrderBy方法用于按照指定的条件对集合进行排序,然后使用ThenBy方法进行二次排序。

var people = new List<Person> {

new Person { Name = "John", Age = 25 },

new Person { Name = "Alice", Age = 30 },

new Person { Name = "Bob", Age = 20 }

};

var sortedPeople = people.OrderBy(p => p.Name).ThenBy(p => p.Age).ToList();

在上面的例子中,我们定义了一个名为people的List<Person>,然后使用OrderBy方法按照姓名进行排序,再使用ThenBy方法按照年龄进行排序。

2.1 转换为查询语法

上面的例子可以使用查询语法来实现:

var sortedPeople = from p in people

orderby p.Name, p.Age

select p;

使用查询语法可以使代码更加简洁易读。

3. 使用First和FirstOrDefault获取集合中的第一个元素

通过First方法可以获取集合中的第一个元素,如果集合为空,则会抛出异常。而使用FirstOrDefault方法可以获取集合中的第一个元素,如果集合为空,则会返回默认值。

var numbers = new List<int> { 1, 2, 3, 4, 5 };

var firstNumber = numbers.First();

var firstEvenNumber = numbers.FirstOrDefault(n => n % 2 == 0);

在上面的例子中,我们使用First方法获取numbers集合中的第一个元素,然后使用FirstOrDefault方法获取numbers集合中的第一个偶数。

4. 使用Skip和Take进行分页

通过Skip方法可以跳过集合中的指定数量的元素,然后使用Take方法获取指定数量的元素,从而实现分页功能。

var numbers = Enumerable.Range(1, 100);

var page1 = numbers.Skip(0).Take(10);

var page2 = numbers.Skip(10).Take(10);

在上面的例子中,我们使用Enumerable.Range方法生成了一个包含1到100的整数集合。然后使用Skip方法跳过前0个元素,使用Take方法获取10个元素,即第一页的数据。再使用Skip方法跳过前10个元素,使用Take方法获取10个元素,即第二页的数据。

5. 使用GroupBy进行分组

通过GroupBy方法可以将集合按照指定的条件进行分组。

var people = new List<Person> {

new Person { Name = "John", Age = 25 },

new Person { Name = "Alice", Age = 30 },

new Person { Name = "Bob", Age = 20 },

new Person { Name = "John", Age = 35 }

};

var groupedPeople = people.GroupBy(p => p.Name);

在上面的例子中,我们定义了一个名为people的List<Person>,然后使用GroupBy方法按照姓名进行分组。

可以通过遍历groupedPeople来获取每个分组的信息。

foreach (var group in groupedPeople)

{

Console.WriteLine(group.Key);

foreach (var person in group)

{

Console.WriteLine(person.Name + " " + person.Age);

}

}

5.1 使用ToDictionary将分组结果转换为字典

可以使用ToDictionary方法将分组结果转换为字典。

var dictionary = groupedPeople.ToDictionary(g => g.Key, g => g.ToList());

在上面的例子中,我们将分组结果转换为字典,Key为姓名,Value为该姓名对应的Person集合。

总结

本文介绍了C# Linq常用的小技巧,包括使用var关键字进行类型推断、使用OrderBy和ThenBy进行排序、使用First和FirstOrDefault获取集合中的第一个元素、使用Skip和Take进行分页、使用GroupBy进行分组。这些小技巧可以帮助开发者更加方便地使用Linq进行数据操作,提高代码的可读性和效率。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签