商品名と価格に2つのオプション、昇順または降順の2つのフィールドがあります。Linq orderbyで "if"を実行する方法は?
ユーザーは、2つのチェックボックスをオンにするかオフにするか、昇順にチェックボックスをオンまたはオフにすることで、並べ替え順序を指定できます。
上記の2つのチェックボックスの設定に基づいてソート順が動的に設定されている場合、orderby句をコーディングするにはどうすればよいですか?ありがとう。
商品名と価格に2つのオプション、昇順または降順の2つのフィールドがあります。Linq orderbyで "if"を実行する方法は?
ユーザーは、2つのチェックボックスをオンにするかオフにするか、昇順にチェックボックスをオンまたはオフにすることで、並べ替え順序を指定できます。
上記の2つのチェックボックスの設定に基づいてソート順が動的に設定されている場合、orderby句をコーディングするにはどうすればよいですか?ありがとう。
あなたは条件付きでOrderBy
句を指定することでクエリを作成することができます
var query = from product in db.Products select product;
if(price.Checked && ascending.Checked)
{
query = query.OrderBy(product => product.Price);
}
else if(price.Checked && !ascending.Checked)
{
query = query.OrderByDescending(product => product.Price);
}
else if(!price.Checked && ascending.Checked)
{
query = query.OrderBy(product => product.Name);
}
else
{
query = query.OrderByDescending(product => product.Name);
}
以下ascendingConditionがあなたのコードに基づいていることに注意してください
if(ascendingCondition)
{
ProductCollection.OrderBy(p => p.Name).ThenBy(p => p.Price)
}
else
{
ProductCollection.OrderByDescending(p => p.Name).ThenByDescending(p => p.Price)
}