Trong mã C# của tôi, tôi cần đánh giá hai biến không null. Tôi đã làm việc ra một tập hợp các câu lệnh if-else nếu, nhưng trong đầu tôi có vẻ xấu xí và hơi quá cẩu thả, ngay cả khi nó đúng.Có cách nào hiệu quả để thực hiện câu lệnh chọn với hai biến không?
Tôi đã xem trong số MSDN Library và chỉ xem các ví dụ để lựa chọn dựa trên một biến duy nhất.
Có cách nào gọn gàng hơn và gọn gàng hơn để đạt được kết quả tương tự không?
Cập nhật: Tôi điền mã để cung cấp thêm ngữ cảnh. Nhìn vào điều này nhiều hơn, có lẽ tôi có thể thao tác truy vấn LINQ trực tiếp dựa trên các tham số. Tuy nhiên, câu hỏi tôi đặt ra là là loại chung mà tôi muốn tập trung vào: lựa chọn thay vì mã được sử dụng sau khi lựa chọn được thực hiện.
public ActionResult Index(string searchBy, string orderBy, string orderDir)
{
var query = fca.GetResultsByFilter(searchBy);
if (orderBy == "Campus" && orderDir == "Asc")
{
query = query = query.OrderBy(s => s.Campus).ThenBy(s => s.Student_Name);
}
else if (orderBy == "Campus" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Campus);
}
else if (orderBy == "Student Name" && orderDir == "Asc")
{
query = query = query.OrderBy(s => s.Student_Name);
}
else if (orderBy == "Student Name" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Student_Name);
}
else if (orderBy == "Course Count" && orderDir == "Asc")
{
query = query.OrderBy(s => s.Course_Count);
}
else if (orderBy == "Course Count" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Course_Count);
}
}
Mã '/ * ... ... * /' là gì? Bạn có thể sử dụng LINQ để thực hiện các truy vấn như thế này, giả định rằng đó là những gì bên trong mã. – Cyral
Tôi đã nói theo nghĩa chung hơn. Đây là các tham số gửi vào hàm bằng cách gửi biểu mẫu. Tôi sẽ sửa đổi câu hỏi đã đăng của mình để cung cấp ngữ cảnh đó. –
Đầu tiên bạn có thể tạo một phương thức như If (check ("campus", "ASC")) ..., sau đó thêm chuỗi của bạn vào một mảng và lặp qua ... cho (i ...) {if (check (strby [i], strdir [i]))} .... hoặc tạo một đối tượng đặc biệt cho nó nếu bạn không thích hai mảng ... – ElDuderino