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