C# LINQ常用語法及實際應(yīng)用示例
更新時間:2025年10月21日 14:46:04 作者:酥酥禾
LINQ (Language Integrated Query) 是C#中用于數(shù)據(jù)查詢的語法,可以查詢各種數(shù)據(jù)源(數(shù)組、集合、數(shù)據(jù)庫等),本文給大家介紹C# LINQ常用語法,感興趣的朋友跟隨小編一起看看吧
1. LINQ 基礎(chǔ)概念
LINQ (Language Integrated Query) 是 C# 中用于數(shù)據(jù)查詢的語法,可以查詢各種數(shù)據(jù)源(數(shù)組、集合、數(shù)據(jù)庫等)。
2. 基本語法結(jié)構(gòu)
查詢表達式語法(類似 SQL)
from 變量 in 數(shù)據(jù)源 where 條件 orderby 字段 select 結(jié)果
方法語法(使用 Lambda 表達式)
數(shù)據(jù)源.方法(參數(shù) => 表達式)
3. 常用的 LINQ 方法
篩選數(shù)據(jù) - Where
// 查詢表達式
var result = from num in numbers
where num > 5
select num;
// 方法語法
var result = numbers.Where(num => num > 5);排序 - OrderBy / OrderByDescending
// 升序
var result = numbers.OrderBy(num => num);
// 降序
var result = numbers.OrderByDescending(num => num);
// 多字段排序
var result = students.OrderBy(s => s.Age)
.ThenBy(s => s.Name);選擇數(shù)據(jù) - Select
// 選擇特定字段
var names = students.Select(s => s.Name);
// 創(chuàng)建新對象
var studentInfo = students.Select(s => new {
Name = s.Name,
Age = s.Age
});其他常用方法
// 取前N個 var top3 = numbers.Take(3); // 跳過前N個 var afterFirst3 = numbers.Skip(3); // 判斷是否存在 bool hasEven = numbers.Any(n => n % 2 == 0); // 判斷是否所有元素都滿足條件 bool allPositive = numbers.All(n => n > 0); // 獲取第一個元素 var first = numbers.First(); // 獲取最后一個元素 var last = numbers.Last(); // 計數(shù) int count = numbers.Count(); // 求和 int sum = numbers.Sum(); // 最大值 int max = numbers.Max(); // 最小值 int min = numbers.Min(); // 平均值 double average = numbers.Average();
4. 實際應(yīng)用示例
學生數(shù)據(jù)示例
class Student
{
public string Name { get; set; }
public int Age { get; set; }
public int Score { get; set; }
}
List<Student> students = new List<Student>
{
new Student { Name = "Alice", Age = 20, Score = 85 },
new Student { Name = "Bob", Age = 22, Score = 90 },
new Student { Name = "Charlie", Age = 19, Score = 78 }
};常見查詢操作
// 1. 篩選年齡大于20的學生
var olderStudents = students.Where(s => s.Age > 20);
// 2. 按分數(shù)降序排序
var sortedByScore = students.OrderByDescending(s => s.Score);
// 3. 選擇學生姓名和分數(shù)
var nameScores = students.Select(s => new {
s.Name,
s.Score
});
// 4. 獲取分數(shù)最高的學生
var topStudent = students.OrderByDescending(s => s.Score).First();
// 5. 計算平均分
var averageScore = students.Average(s => s.Score);
// 6. 分組查詢
var groupByAge = students.GroupBy(s => s.Age);5. 在數(shù)組和集合中的應(yīng)用
數(shù)組操作
csharp
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 獲取偶數(shù)
var evenNumbers = numbers.Where(n => n % 2 == 0);
// 平方每個數(shù)
var squares = numbers.Select(n => n * n);
// 獲取大于5的數(shù)并排序
var result = numbers.Where(n => n > 5)
.OrderBy(n => n);字符串數(shù)組
string[] names = { "Alice", "Bob", "Charlie", "David" };
// 查找以A開頭的名字
var aNames = names.Where(name => name.StartsWith("A"));
// 按長度排序
var sortedByLength = names.OrderBy(name => name.Length);到此這篇關(guān)于C# LINQ常用語法的文章就介紹到這了,更多相關(guān)C# LINQ語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實現(xiàn)將PPT轉(zhuǎn)換成HTML的方法
這篇文章主要介紹了C#實現(xiàn)將PPT轉(zhuǎn)換成HTML的方法,非常實用的功能,需要的朋友可以參考下2014-08-08
分享兩種實現(xiàn)Winform程序的多語言支持的多種解決方案
本篇文章主要介紹了分享兩種實現(xiàn)Winform程序的多語言支持的多種解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。2017-02-02
c#基礎(chǔ)之數(shù)組與接口使用示例(遍歷數(shù)組 二維數(shù)組)
本文主要介紹了c#基礎(chǔ)知識中的數(shù)組與接口使用方法,結(jié)合示例,大家一看就明白2014-01-01

