.Insert和错误说明的问题无法将void分配给隐式类型的变量

时间:2016-03-04 04:48:51

标签: c# linq

我有这段代码:

public static object Grp(List<GetQuestionsDTO> questions)
{
    var a = questions;
    var initialRow = new GetQuestionsDTO() { QuestionNumber = 0 };
    var c = a.Insert(0, initialRow);
}

我认为我正在做的一切正确,但我收到一个错误说:

  

错误CS0815无法将void分配给隐式类型变量

有人可以告诉他们是否能看出错误吗?

3 个答案:

答案 0 :(得分:3)

a.Insert(0, initialRow)void函数,因此您无法为其分配c

答案 1 :(得分:2)

List<T>.Insert返回void(https://msdn.microsoft.com/en-us/library/sey5k5z4(v=vs.110).aspx),因此没有值分配,因此错误。

在您的情况下,实际上没有理由获得返回值,因为您已经在'initialRow'变量中添加了对象。

答案 2 :(得分:0)

  

List<T>.Insert()方法将元素插入List   在指定的索引处。应插入项的从零开始的索引。哪个不会返回任何值,因此您无法像以前那样分配它。我认为这是你真正想要实现的目标;

public static object Grp(List<GetQuestionsDTO> questions)
{    
    questions.Insert(0, new GetQuestionsDTO() { QuestionNumber = 0 });
    return questions;
}

如果您需要c中的结果,可以这样做:

var a = questions;
var initialRow = new GetQuestionsDTO() { QuestionNumber = 0 };
a.Insert(0, initialRow);
var c =a;