在LINQ中生成可枚举的真假布尔值

时间:2013-08-13 00:21:54

标签: linq-to-sql linq

我认为这是一个简单的问题。我想生成一个可枚举的LINQ,用于selectmany函数。这就是我想要做的事情

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

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

我尝试生成一个列表并向其添加两个布尔值,但它会出错。

  

NotSupportedException:除了Contains运算符之外,本地序列不能用于查询运算符的LINQ to SQL实现。

使用的代码如下

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

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

现在我唯一能想到的另一个选择就是有两个列表,一个带有selectmany => false,另一个带有selectmany => true,然后对它们进行连接以获得完整的列表。

linq中是否有一个函数,如Range函数生成布尔值或其他生成布尔值的方法而不需要concat

1 个答案:

答案 0 :(得分: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()。