C# 如何在C中的组合框中显示唯一记录#

C# 如何在C中的组合框中显示唯一记录#,c#,C#,有人能帮忙吗 这里我使用数据源作为combobox的列表 公共部分类Form1:Form { 公共表格1() { 初始化组件(); LoadDropdownlist(); } public void LoadDropdownlist() { var makes = new List<string> { "Audi",

有人能帮忙吗

这里我使用数据源作为combobox的列表

公共部分类Form1:Form { 公共表格1() { 初始化组件(); LoadDropdownlist(); }

    public void LoadDropdownlist()
    {
        var makes = new List<string> {
                                       "Audi",
                                       "BMW",
                                       "Ford",
                                       "Vauxhall",
                                       "Volkswagen"
                                     };
        comboBox1.DataSource = makes;


    }
public void LoadDropdownlist()
{
var makes=新列表{
“奥迪”,
“宝马”,
“福特”,
“沃克斯霍尔”,
“大众”
};
comboBox1.DataSource=makes;
}
根据以上代码,我在combobox中得到的结果如下

奥迪, 宝马, 河流浅水处 沃克斯霍尔, 大众汽车

但我想根据第一个字符显示唯一的记录,所以我希望在combobox中得到下面的结果

奥迪, 宝马, 河流浅水处 沃克斯霍尔

谢谢,
satish

您可以根据第一个字符对它们进行分组:

comboBox1.DataSource = makes
                      .GroupBy(x => x[0])
                      .Select(x => x.First())
                      .ToList();
试试这个

  var makes = new List<string> {
                                       "Audi",
                                       "BMW",
                                       "Ford",
                                       "Vauxhall",
                                       "Volkswagen"
                                     }.GroupBy(t => t[0])
                .Select(t => t.First()).ToList();
var makes=新列表{
“奥迪”,
“宝马”,
“福特”,
“沃克斯霍尔”,
“大众”
}.GroupBy(t=>t[0])
.Select(t=>t.First()).ToList();

展示你的努力..嗨,谢谢你的回答。但是我必须学习C#2.0,C#2.0中没有lamda表达式,有什么替代性的解决方案吗?嗨,谢谢你的回答,你能提供更多的细节吗?因为我是新手。谢谢你,但我在加载时发现了错误combobox@satish你有什么例外?comboBox1.DataSource=makes.Distinct(new FirstLetterComparer());这里我遇到了一个错误,因为复杂数据绑定将IList或ILisourcetry作为数据源接受此comboBox1.DataSource=makes.Distinct(new FirstLetterComparer()).ToList();嗨,Lambda表达式在c#2.0中不工作,你能给我任何其他解决方案吗?
    public List<string> FetchFirstLetterUniques(List<string> source)
    {
        List<string> result = new List<string>();
        foreach (string item in source)
        {
            bool isAdded = false;
           foreach (string item2 in result)
           {
               if (string.Compare(item2[0].ToString(), item[0].ToString(), 0) == 0)
               {
                   isAdded = true;
                   break;
               }
           }

           if (!isAdded)
               result.Add(item);

        }

        return result;
    }

public void LoadDropdownlist()
{
    var makes = new List<string> {
                                   "Audi",
                                   "BMW",
                                   "Ford",
                                   "Vauxhall",
                                   "Volkswagen"
                                 };
    comboBox1.DataSource = FetchFirstLetterUniques(makes);


}
  var makes = new List<string> {
                                       "Audi",
                                       "BMW",
                                       "Ford",
                                       "Vauxhall",
                                       "Volkswagen"
                                     }.GroupBy(t => t[0])
                .Select(t => t.First()).ToList();