gpt4 book ai didi

c# - 如何确定顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:53 24 4
gpt4 key购买 nike

我在 asp.net mvc3 Controller 中获得了这段代码,用于在下拉列表中查看和排序。但我的问题是,正如您在下图中看到的那样,它按 文本排序,旁边是数字。如何解决这个问题?

ViewBag.AddrBarangay = new SelectList(db.Barangays, "BarangayId", "BarangayName", "").OrderBy(m => m.Text);

enter image description here

最佳答案

对于您的情况,您必须创建新的比较器,它可以在 lexicograhical order 中排序你应该有自己的比较器实现,它实现了 IComparer<string>界面。你的比较器应该是这样的:

public class LexicoComparer : IComparer<string>
{
public int Compare(string x, string y)
{
var firstArgumentSplits = x.Split(' ');
var secondArgumentSplits = y.Split(' ');

if (firstArgumentSplits.Length == 2 && secondArgumentSplits.Length == 2)
{
int firstArgumentInt, secondArgumentInt;
if (firstArgumentSplits[0] == secondArgumentSplits[0])
{
if (int.TryParse(firstArgumentSplits[1], out firstArgumentInt))
{
if (int.TryParse(secondArgumentSplits[1], out secondArgumentInt))
{
return firstArgumentInt == secondArgumentInt ? 0 : firstArgumentInt > secondArgumentInt ? 1 : 0;
}

}
}
}


return String.Compare(x, y);
}
}

现在你在 OrderBy 中使用上面的比较器:

ViewBag.AddrBarangay = new SelectList(db.Barangays,
"BarangayId", "BarangayName", "").OrderBy(m => m.Text,
new LexicoComparer());

关于c# - 如何确定顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com