static void LinqDemo()
{
string sentence = "the quick brown fox jumps over the lazy dog";
string[] list = sentence.Split(' ');
//------------- Sorting data-----------------------------
//Sắp xếp tăng dần với cả 2 điều kiện lọc:
List<string> queryTangDan = list.OrderBy(o => o.Length).ThenBy(o => o.Substring(0, 1)).Select(o => o.ToUpper()).ToList();
//Sắp xếp giảm dần với cả 2 điều kiện lọc, sử dụng đảo ngược Reverse():
List<string> queryGiamDanBangDaoNguoc = list.OrderBy(o => o.Length).ThenBy(o => o.Substring(0, 1)).Select(o => o.ToUpper()).Reverse().ToList();
//Sắp xếp giảm dần với cả 2 điều kiện lọc:
List<string> queryGiamDan = list.OrderByDescending(o => o.Length).ThenByDescending(o => o.Substring(0, 1)).Select(o => o.ToUpper()).ToList();
//------------- Set data-----------------------------
//Loại bỏ phần tử trùng
List<string> queryLoaiBoTrung = list.Distinct().ToList();
//Hiệu của 2 tập hợp: phần tử A không có trong B
List<string> lstB = new List<string>() { "quick", "brown", "dog", "cat" };
List<string> queryHieu = list.Except(lstB).ToList();
//Giao của 2 tập hợp: có cả trong A và B
List<string> queryGiao = list.Intersect(lstB).ToList();
//Hợp của 2 tập hợp: có trong A hoặc B
List<string> queryHop = list.Union(lstB).ToList();
//------------- Filtering Data-----------------------------
//Lọc theo điều kiện: độ dài chuỗi bằng 4
List<string> queryFilter = list.Where(o => o.Length == 4).ToList();
//Lọc theo kiểu dữ liệu
object[] objs = new object[] { "12345", 12 };
List<string> queryFilterType = objs.OfType<string>().ToList(); //return { "12345" }
//------------- Quantifier Operations-----------------------------
List<Student> students = new List<Student>();
students.Add(new Student { ID = 1, Name = "Asutosh", Age = 19 });
students.Add(new Student { ID = 2, Name = "Kapil", Age = 20 });
students.Add(new Student { ID = 3, Name = "Sumit", Age = 21 });
Student newStudent = new Student { ID = 3, Name = "Anil", Age = 22 };
students.Add(newStudent);
//Điều kiện Tất cả SV đều lớn hơn 20 tuổi
bool isAllOver20 = students.All(student => student.Age > 20);
//Điều kiện tồn tại SV lớn hơn 20 tuổi
bool isAnyOver20 = students.Any(student => student.Age > 20);
//Điều kiện chứa SV - cùng 1 đối tượng
bool isContain = students.Contains(newStudent);
Console.WriteLine(isContain);
foreach (string str in queryFilterType)
Console.WriteLine(str);
}
Không có nhận xét nào:
Đăng nhận xét