Cách trộn danh sách số nguyên theo yêu cầu trong ngôn ngữ C#
Trong ngôn ngữ lập trình C#, chúng ta có thể sử dụng các hàm để trộn các danh sách số nguyên theo yêu cầu. Trong bài viết này, chúng ta sẽ tìm hiểu cách trộn hai danh sách số nguyên thành một danh sách mới với các yêu cầu khác nhau. Đầu tiên, chúng ta sẽ trộn hai danh sách theo thứ tự tăng dần. Để làm điều này, chúng ta có thể sử dụng hàm Merge của lớp List trong C#. Hàm này sẽ trộn hai danh sách theo thứ tự tăng dần và trả về một danh sách mới. Ví dụ: ```csharp List<int> s11 = new List<int> { 1, 3, 5 }; List<int> s12 = new List<int> { 2, 4, 6 }; List<int> sl = s11.Concat(s12).OrderBy(x => x).ToList(); ``` Tiếp theo, chúng ta sẽ trộn hai danh sách theo thứ tự giảm dần. Để làm điều này, chúng ta có thể sử dụng hàm Reverse của lớp List trong C#. Hàm này sẽ đảo ngược thứ tự các phần tử trong danh sách. Ví dụ: ```csharp List<int> sl = s11.Concat(s12).Reverse().ToList(); ``` Tiếp theo, chúng ta sẽ trộn hai danh sách sao cho các phần tử có giá trị chẵn tăng dần và các phần tử có giá trị lẻ giảm dần. Để làm điều này, chúng ta có thể sử dụng hàm Where và OrderBy của lớp List trong C#. Hàm Where sẽ lọc ra các phần tử thỏa mãn điều kiện cho trước và hàm OrderBy sẽ sắp xếp các phần tử theo thứ tự tăng dần. Ví dụ: ```csharp List<int> sl = s11.Concat(s12).Where(x => x % 2 == 0).OrderBy(x => x).ToList(); ``` Cuối cùng, chúng ta sẽ trộn hai danh sách sao cho các phần tử tại những vị trí chẵn tăng dần và các phần tử tại những vị trí lẻ giảm dần. Để làm điều này, chúng ta có thể sử dụng hàm Select và OrderBy của lớp List trong C#. Hàm Select sẽ chọn ra các phần tử theo chỉ số và hàm OrderBy sẽ sắp xếp các phần tử theo thứ tự tăng dần. Ví dụ: ```csharp List<int> sl = s11.Select((x, i) => new { Value = x, Index = i }) .Concat(s12.Select((x, i) => new { Value = x, Index = i })) .OrderBy(x => x.Index % 2 == 0 ? x.Value : -x.Value) .Select(x => x.Value) .ToList(); ``` Trên đây là các cách trộn danh sách số nguyên theo yêu cầu trong ngôn ngữ C#. Chúng ta có thể sử dụng các hàm có sẵn trong lớp List để thực hiện các yêu cầu khác nhau. Việc hiểu và áp dụng các hàm này sẽ giúp chúng ta xử lý dữ liệu một cách hiệu quả và linh hoạt trong lập trình.