所以我有这个listview,我想按字母顺序排序。有人知道你能做到吗?如果你知道如何做到这一点,那么告诉我代码。寻求帮助!!
这是我的Xaml.cs代码:
namespace App2
{
public partial class MainPage : ContentPage
{
List<Kontakter> kontakter = new List<Kontakter>
{
new Kontakter
{
Fuldenavn = "Anja Birkelund (ANBI)",
Tlfnr = 24212504
},
new Kontakter
{
Fuldenavn = "Morten Jensen (MOJ)",
Tlfnr = 24838149
},
new Kontakter
{
Fuldenavn = "Thomas Duvall Pedersen (TPD)",
Tlfnr = 61706767
},
new Kontakter
{
Fuldenavn = "Svend-Erik Dejbjerg (SD)",
Tlfnr = 20116644
}
};
public MainPage()
{
InitializeComponent();
NameslistView.ItemsSource = kontakter;
}
private void MainSearchBar_SearchButtonPressed(object sender, EventArgs e)
{
var keyword = MainSearchBar.Text;
NameslistView.ItemsSource = kontakter.Where(obj => (obj.Fuldenavn.Contains(keyword) || obj.Tlfnr.ToString().Contains(keyword)));
}
}
}
这是我的Xmal代码:
<ListView x:Name="NameslistView" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Fuldenavn}" />
<Label Text="{Binding Tlfnr}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:0)
您可以使用LINQ方法OrderBy
。
按照a的升序对序列的元素进行排序 键。
var sorted = kontakter.OrderBy(x => x.Fuldenavn)
.ToList();
请阅读101 LINQ-Samples以获取更多信息。
修改强>
public MainPage()
{
InitializeComponent();
//Order the contacts
var sorted = kontakter.OrderBy(x => x.Fuldenavn)
.ToList();
//Set the ItemsSource with the ordered contacts
NameslistView.ItemsSource = sorted;
}
答案 1 :(得分:0)
使用排序并提供条件
kontakter.Sort((x,y)=&gt; x.Fuldenavn [0] .CompareTo(y.Fuldenavn [0]));
其中[0]代表Fuldenavn的第一个字母,以便按字母顺序排序。