无法在列表中定义运算符

Can not define operator on list

这部分我有一个错误: 我需要 + 运算符来求和两个列表...

public partial class Question
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Question()
    {
        this.Answers = new HashSet<Answer>();
    }

    public long Question_Code { get; set; }
    public Nullable<byte> Question_ExamCode { get; set; }
    public Nullable<byte> Question_LessonCode { get; set; }
    public string Question_Text { get; set; }
    public string Question_OrginalLable { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Answer> Answers { get; set; }
    public virtual Exam Exam { get; set; }
    public virtual Lesson Lesson { get; set; }
}

然后 :

public class FinalQuestions
{
    public FinalQuestions() { }
    public List<Question> StoreQuestions { get; set; }

    public static List<Question> operator +(List<Question> FQ1, List<Question> FQ2)
    {
        foreach (var item in FQ2)
            FQ1.Add(item);

        return FQ1;
    }
}

二元运算符的参数之一必须是包含类型!!!

正如 Jon Skeet 评论的那样,这是不可能的。

组合两个序列的惯用方法是使用Enumerable.Concat。这样您就可以将两个列表中包含的问题组合成第三个列表,如下所示:

var all = first.Concat(second).ToList();