c# - 我如何按字母顺序对我的 ListView 进行排序?

标签 c# sorting listview xamarin

所以我有这个 ListView ,我想让它按字母顺序排序。有人知道你能不能做到吗?如果你知道怎么做,请告诉我代码。寻求帮助!!

这是我的 Xaml.cs 代码:

namespace App2
{
public partial class MainPage : ContentPage
{
    List<Kontakter> kontakter = new List<Kontakter>
    {
        new Kontakter
        {
        Fuldenavn = "Name One (NO)",
        Tlfnr = 12345678
        },
        new Kontakter
        {
            Fuldenavn = "Another Name (AN)",
            Tlfnr = 23456789
        },
        new Kontakter
        {
            Fuldenavn = "Third Name (TN)",
            Tlfnr = 34567890
        },
        new Kontakter
        {
            Fuldenavn = "Yet Another (YA)",
            Tlfnr = 45678901
        }
    };

    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>

最佳答案

您可以使用 LINQ 方法 OrderBy为此。

Sorts the elements of a sequence in ascending order according to a key.

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;
}

关于c# - 我如何按字母顺序对我的 ListView 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935942/

相关文章:

android - 在 ListView 中显示员工列表

android listView 行高

c# - VB.NET禁用键盘和鼠标

algorithm - 基数排序是唯一的非比较排序算法吗?

android - 如何从 BroadcastReceiver 刷新 ListView?

arrays - 设计一个使用散列并支持比较的数据结构

java - 如何根据某些子串对字符串进行排序?

c# - 检查安装了哪个版本的 DirectX

c# - C# 是否支持 'nested' 程序,例如产生一个 IEnumerable?

c# - 带有 Masstransit 发布的中间件