0

我相信这是一个简单的问题。我想生成一个可枚举的 LINQ 以在 selectmany 函数中使用。这就是我想做的

    var completeMonthsList = (from p in MonthList                                         
                               select new
                               {
                                  p.Month
                               }).SelectMany(ml => boolList.Select(bool =>

                new
                {
                    Month = ml.Month,
                    isConditonal= bool
                }
                )

我尝试生成一个列表并将两个布尔值添加到其中,但它给出了一个错误。

NotSupportedException:本地序列不能在查询运算符的 LINQ to SQL 实现中使用,但 Contains 运算符除外。

使用的代码如下

    List<Boolean> boolList = new List<Boolean>();

            boolList.Add(true);
            boolList.Add(false);

现在我能想到的唯一其他选择是有两个列表,一个带有 aselectmany => false和一个带有 aselectmany => true然后对它们进行 concat 以获得完整列表。

linq 中是否有一个函数,例如Range生成布尔值的函数或另一种生成布尔值而不需要的函数concat

4

1 回答 1

0

嗨,如果我没有误解你的问题,试试这样的

var rsult = (from p in MonthList).Tolist()
             .SelectMany(i => Enumerable.Repeat(i, 2)
            .Select((s, ii) => new { Month = s.Month, isConditonal = ii % 2 == 0 ? true : false })).ToList();

我希望这会有所帮助。我希望您从 DB 中获取 MonthList,如果没有,那么您可以在 MonthList 之后跳过 ToList()。

于 2013-08-13T01:21:16.920 回答