【问题标题】:Want to add multiple variable's data in one variable, array/list想在一个变量中添加多个变量的数据,数组/列表
【发布时间】:2021-01-24 18:07:15
【问题描述】:

我想将多个变量数据添加到一个变量中,以便工作变得轻松。

         string value1 = "bb123";
        string value2 = "bb456";
        string value3 = "bb789";
        string value4 = "bb1011";
        string value5 = "bb736";
        string value6 = "bb66";
        string value7 = "bb67";


        //USERS DATA
        var data  = db.User_Register_Events.Where(x => x.UserTable.User_id == value1).Select(x => x.EventTable.Slot.Slot_Id).ToList();  
           
        var data2 = db.User_Register_Events.Where(x => x.UserTable.User_id == value2).Select(x => x.EventTable.Slot.Slot_Id).ToList();

        var data3 = db.User_Register_Events.Where(x => x.UserTable.User_id == value3).Select(x => x.EventTable.Slot.Slot_Id).ToList();

        var data4 = db.User_Register_Events.Where(x => x.UserTable.User_id == value4).Select(x => x.EventTable.Slot.Slot_Id).ToList();

        var data5 = db.User_Register_Events.Where(x => x.UserTable.User_id == value5).Select(x => x.EventTable.Slot.Slot_Id).ToList();

        var data6 = db.User_Register_Events.Where(x => x.UserTable.User_id == value6).Select(x => x.EventTable.Slot.Slot_Id).ToList();

        var data7 = db.User_Register_Events.Where(x => x.UserTable.User_id == value7).Select(x => x.EventTable.Slot.Slot_Id).ToList();          


        //ALL SLOTS
        List<int> AllSlots = db.Slots.Select(x => x.Slot_Id).ToList();

我想将所有“数据、数据2、数据3、数据4、数据5、数据6、数据7”存储在一个变量中 这样我就可以将“AllData”与 AllSlots 结合使用...

    var AllData = ??????.ToList();

var result = AllSlots.Except(data.Union(AllData)).ToList();

【问题讨论】:

  • 不要标记垃圾邮件。只需标记与问题相关的内容。别忘了问一个问题。解释你试图解决的问题,描述为什么你的尝试没有奏效。
  • db.U....每行生成的数据是否相同?如果是,您可以使用 data.AddRange(db.U.....ToList())我>
  • var data = db.User_Register_Events.Where(x => x.UserTable.User_id == value1).Select(x => x.EventTable.Slot.Slot_Id).ToList();跨度>
  • 这就是我用于上述所有给定变量的查询......只有“== value1”在所有 data3、data4、data5、data6、data7 中更改为“==value2 ","==value3","==value4"....
  • edit这个问题更容易理解。

标签: c# asp.net entity-framework


【解决方案1】:

如果您查询相同的字段但具有不同的值,那么您只需对数据库后端进行一次调用,将所有要搜索的值放在一个列表中,然后使用此列表过滤该字段

List<string> values = {"123","456","789","1011","736","66","67"};
var data  = db.User_Register_Events
           .Where(x => values.Contains(x.UserTable.User_id)
           .Select(x => x.EventTable.Slot.Slot_Id).ToList();  
  

但是,我对您的价值观有些怀疑。它们似乎是整数而不是字符串。如果字段 UserTable.User_id 是整数,那么您应该使用整数列表而不是字符串进行查询。

【讨论】:

  • 我现在只是使用静态值,只是为了运行查询,之后输入将来自用户端,来自界面......(非静态)
  • 将变量放入列表构造函数中,而不是静态值。 List values = {value1, value2, ....};
猜你喜欢
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多