Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 为列表中的元素设置值时,赋值的左侧必须是变量_C#_Dynamic - Fatal编程技术网

C# 为列表中的元素设置值时,赋值的左侧必须是变量

C# 为列表中的元素设置值时,赋值的左侧必须是变量,c#,dynamic,C#,Dynamic,我想在动态列表中的特定位置设置元素的值。它返回我这个错误。这是什么原因造成的?我该如何解决 public class DienTieuThuRowModel { public List<dynamic> RowItem { get; set; } } DienTieuThuRowModel result = new DienTieuThuRowModel(); result.RowItem = new List<dynamic>(new dynamic[10])

我想在动态列表中的特定位置设置元素的值。它返回我这个错误。这是什么原因造成的?我该如何解决

public class DienTieuThuRowModel
{
    public List<dynamic> RowItem { get; set; }
}

DienTieuThuRowModel result = new DienTieuThuRowModel();
result.RowItem = new List<dynamic>(new dynamic[10]);
float variable = 12;
result.RowItem.ElementAt(1) = giatri;
公共类dientieurowModel
{
公共列表行项目{get;set;}
}
DienTieuThuRowModel结果=新的DienTieuThuRowModel();
result.RowItem=新列表(新动态[10]);
浮动变量=12;
结果.RowItem.ElementAt(1)=giatri;

使用@Llama suggestion,我建议您将其转换为dynamic

result.RowItem[1] = (dynamic) giatri;

.ElementAt(1)
是一个LINQ方法,它通过列表迭代到第n项并返回它(即使您可以重新分配结果,它也不会更改列表)。由于您有一个列表,您只需要
result.RowItem[1]=giatri。它返回给我的另一个错误是“需要标识符”。是因为动态类型吗?我以为动态数据类型应该处理所有类型的数据,然后在以后运行时返回错误。我想这是因为
giatri
没有在任何地方定义?如果我将
giatri
更改为
variable
(),它可以正常工作。哦,对不起,我的不好。我忘记了“点”,因此代码类似于result.RowItem。[1]=giatri;现在修好了。。您不需要对声明为
dynamic
的变量强制转换任何赋值,因为
dynamic
可以接受任何值。噢,谢谢您的更正