Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单的IEnumerable<;int>;列出<;KeyValuePair<;int,int>>;?_C#_Linq_Expression - Fatal编程技术网

C# 简单的IEnumerable<;int>;列出<;KeyValuePair<;int,int>>;?

C# 简单的IEnumerable<;int>;列出<;KeyValuePair<;int,int>>;?,c#,linq,expression,C#,Linq,Expression,以下代码可以正常工作: cboDay.DataSource = Enumerable.Range(1, 31).ToDictionary(x => x, x => x).ToList<KeyValuePair<int, int>>(); cboDay.ValueMember = "Key"; cboDay.DisplayMember = "Value"; cboDay.DataSource=Enumerable.Range(1,31).ToDictionar

以下代码可以正常工作:

cboDay.DataSource = Enumerable.Range(1, 31).ToDictionary(x => x, x => x).ToList<KeyValuePair<int, int>>();
cboDay.ValueMember = "Key";
cboDay.DisplayMember = "Value";
cboDay.DataSource=Enumerable.Range(1,31).ToDictionary(x=>x,x=>x).ToList();
cboDay.ValueMember=“Key”;
cboDay.DisplayMember=“Value”;
但是有没有更好的方法来简化转换?(例如,删除
到字典
?)

确定可以替换吗

Enumerable.Range(1, 31).ToDictionary(x => x, x => x).ToList<KeyValuePair<int, int>>();
Enumerable.Range(1,31).ToDictionary(x=>x,x=>x).ToList();

Enumerable.Range(1,31)。选择(x=>newkeyvaluepair(x,x)).ToList();

当然可以,只需使用
选择

cboDay.DataSource = Enumerable.Range(1, 31)
    .Select(x => new KeyValuePair<int, int>(x, x))
    .ToList();
cboDay.DataSource=Enumerable.Range(1,31)
.选择(x=>newkeyvaluepair(x,x))
.ToList();
不清楚您是否需要将其设置为
列表
,但这样做可以保证只对其进行一次评估,并且可能允许对您正在使用的任何内容进行一些优化


无需创建
词典
——事实上,这样做目前并不能保证顺序,而上面的代码肯定会给你1-31个顺序。

抛出异常
复杂数据绑定接受IList或IListSource作为数据源
@Ivan MarkDebono添加
。ToList()
cboDay.DataSource = Enumerable.Range(1, 31)
    .Select(x => new KeyValuePair<int, int>(x, x))
    .ToList();