LINQ查询结果进入List
本文关键字:List 结果 查询 LINQ | 更新日期: 2023-09-27 18:07:12
我有一个叫做Name
的类,它有一个属性。
public class Name
{
public string comboName { get; set; }
}
我试图运行LINQ查询以返回所有FullName
,然后为每个Name
类创建一个实例,将FullName
分配给属性comboName
。实例被添加到List
,然后我希望List
值被添加到ComboBox1
下拉值。下面是我到目前为止写的代码:
void ComboBox1_Loaded(object sender, RoutedEventArgs e)
{
GiftIdeasDataContext dc = new GiftIdeasDataContext();
var qry = from r in dc.Recipients
select new Name()
{
comboName = r.FullName
};
List<Name> lst = qry.ToList();
ComboBox1.ItemsSource = lst;
}
Issue:当代码执行时,ComboBox1
下拉只显示字符串'myMemory。Name' 9次(Recipient
表中名称的个数)。我应该只是创建一个列表,并分配字符串值的列表,而不是使用一个类?
到目前为止,我只使用c#的控制台窗口,这是我第一个使用WPF的项目,所以任何帮助都很感激。
ComboBox
需要知道您希望如何显示Name
类的实例。由于您没有明确地告诉它,它使用Name.ToString()
来显示您的Name
实例。
您可以通过将ComboBox1.DisplayMemberPath
设置为comboName
来显式地告诉ComboBox
如何显示Name
类的实例。
List<Name> lst= from r in dc.Recipients
select new Name()
{
comboName = r.FullName
}.ToList<Name>();
或者你可以像下面这样转换:
List<Name> lst = (List<Name>)qry.ToList();
var lst = dc.Recipients.Select(r => new Name{ comboName = r.FullName }).ToList();