【问题标题】:Append custom value to a LINQ statement将自定义值附加到 LINQ 语句
【发布时间】:2013-12-30 20:44:10
【问题描述】:

我有这个 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

【问题讨论】:

  • 你是什么意思append new Name?你想把它插入数据库吗?
  • 不...我只希望它在列表的末尾。查看我更新的问题
  • 你需要这个仅用于显示目的吗?例如。在控件中显示?
  • 是仅显示 - 在组合框中
  • @webdad3 然后不要在此 LINQ 语句/值中执行此操作。将“请选择”直接添加到组合框项目 - 它不属于数据

标签: c# linq linq-to-sql


【解决方案1】:
var value = (from o in DataContext.Table
            where o.Active == "Yes"
            orderby o.Name
            select o).AsEnumerable()
                     .Concat(new [] { new TableObject() });

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

【讨论】:

  • 这似乎对我不起作用? TableObject 是如何增加我的价值的?
【解决方案2】:

您可以使用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 });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    相关资源
    最近更新 更多