将自定义值附加到LINQ语句

时间:2013-12-30 20:44:10

标签: c# linq linq-to-sql

我有这个LINQ2SQL语句:

var value = from o in DataContext.Table
            where o.Active == "Yes"
            orderby o.Name
            select o;

我想在此列表中附加一个新名称(即“选择选项4”);

我不确定如何实现这一目标(如果可以的话)?

值可能有:

Option 1
Option 2
Option 3

我也希望能够添加:

Select Option 4

2 个答案:

答案 0 :(得分:1)

var value = (from o in DataContext.Table
            where o.Active == "Yes"
            orderby o.Name
            select o).AsEnumerable()
                     .Concat(new [] { new TableObject() });

当然,它根本不会改变您的数据库内容。

答案 1 :(得分:0)

您可以使用Concat连接另一个序列,然后将您想要的一个项目放入其自己的序列中:

value = value.Concat(new[]{"Select a different Option"});

如果您经常这样做,您可以创建一个扩展方法来为您处理它:

public static IEnumerable<T> Concat<T>(this IEnumerable<T> source, T item)
{
    return source.Concat(new[] { item });
}