gpt4 book ai didi

c# - 在组合框的匿名类型中使用 nameof

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:34 27 4
gpt4 key购买 nike

目前对于我的 combobox 绑定(bind),我这样写:

        comboBox1.DataSource = DataList
.Select(x => new { Value = x, Display = x.ToString() })
.ToList();
comboBox1.DisplayMember = "Display";
comboBox1.ValueMember = "Value";

我正在使用匿名类型为 comboBox1.DataSource 创建一个新类型,然后为 comboBox1.DisplayMembercomboBox1.ValueMember 指定要绑定(bind)的属性

我不喜欢这种方法的是我必须对属性名称进行硬编码(例如:“Display”和“Value”),我宁愿使用 nameof 或其他东西,< em>任何,如果我输入错误,可以保证编译时失败(而不是运行时)。

无论如何,我可以在匿名类型下使用 nameof 吗?

当然,我不想为此目的创建一个类(在我看来太浪费了)。

最佳答案

这应该有效。 DataSource 是您的敌人,因为它属于 object 类型。顺便问一下,您确定 DataList 始终不为空吗?考虑为此添加空检查。

var source = DataList.Select(x => new { Value = x, Display = x.ToString() });
var first = source.FirstOrDefault();

comboBox1.DisplayMember = nameof(first.Display);
comboBox1.ValueMember = nameof(first.Value);
comboBox1.DataSource = source.ToList();

关于c# - 在组合框的匿名类型中使用 nameof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48876862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com