Trong bài này, chúng ta có một danh sách List với các phần tử là kiểu chuỗi. Mỗi phần tử chứa 1 tập các số (int) ngăn cách nhau bằng dấu phẩy. Chúng ta sẽ sắp xếp danh sách List này theo từng vị trí index của tập các số và hiển thị kết quả ra màn hình.
Ví dụ, chúng ta có 3 phần tử chuỗi: “6, 5, 7, 0”, “1, 9, 2, 3” và “5, 9, 2, 1”. Phần tử đầu tiên “6, 5, 7, 0” được phân tách thành 1 danh sách số nguyên (int) với 4 số: 6, 5, 7, 0, tương ứng với vị trí index từ 0 đến 3.
Nếu sắp xếp theo ví trị index = 0 và giảm dần, thì có kết quả:
6, 5, 7, 0 5, 9, 2, 1 1, 9, 2, 3 // cột đầu tiên 6, 5, 1 được sắp xếp giảm
Nếu sắp xếp theo vị trí index = 3 và giảm dần, thì có kết quả:
1, 9, 2, 3 5, 9, 2, 1 6, 5, 7, 0 // cột cuối cùng 3, 1, 0 được sắp xếp giảm
Sau đây là ví dụ thực thi.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace LINQ2String { class Program { static void Main(string[] args) { // Dữ liệu nguồn --- dammio.com List<string> list = new List<string>() { "6, 5, 7, 0", "1, 9, 2, 3", "5, 9, 2, 1" }; // Thay đổi vị trí sắp xếp từ 0 đến 3 int sortField = 3; // Hiển thị kết quả foreach (string str in RunQuery(list, sortField)) { Console.WriteLine(str); } // Giữ cửa sổ console luôn mở Console.WriteLine("Nhan bat ky phim de thoat!"); Console.ReadKey(); } static IEnumerable<string> RunQuery(List<string> source, int num) { // Tách chuỗi, convert về mảng số và sắp xếp theo trường (vị trí) fields[num] var scoreQuery = from line in source let fields = line.Split(',').Select(Int32.Parse).ToList() orderby fields[num] descending select line; return scoreQuery; } /* Kết quả thực thi * Ví trị index 0 được sắp xếp giảm dần 6, 5, 1 * 1, 9, 2, 3 * 5, 9, 2, 1 * 6, 5, 7, 0 */ } }
Trong ví dụ trên, tùy theo vị trí index sắp xếp (num), chúng ta sẽ tách danh sách phần tử chuỗi thành 1 danh sách số fields = line.Split(‘,’).Select(Int32.Parse).ToList(), sau đó sắp xếp danh sách số dựa trên vị trí index fields[num] và tạo kết quả để hiển thị.
Kết luận: Bài này giúp chúng ta cách sắp xếp 1 danh sách văn bản theo ví trị index của danh sách con của mỗi phần tử.
- APA:
Dammio. (2017). [LINQ và chuỗi] Phần 6: Cách sắp xếp và lọc dữ liệu văn bản theo từ hay vị trí. https://www.dammio.com/2017/04/25/linq-va-chuoi-phan-6-cach-sap-xep-va-loc-du-lieu-van-ban-theo-tu-hay-vi-tri.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[LINQ và chuỗi] Phần 6: Cách sắp xếp và lọc dữ liệu văn bản theo từ hay vị trí},
year = {2017},
url = {https://www.dammio.com/2017/04/25/linq-va-chuoi-phan-6-cach-sap-xep-va-loc-du-lieu-van-ban-theo-tu-hay-vi-tri},
urldate = {2024-12-05}
}