【问题标题】:Set a value to list a datatype after checking values of other datatypes在检查其他数据类型的值后设置一个值以列出数据类型
【发布时间】:2013-03-21 18:18:50
【问题描述】:

我有一个包含用户会话数据的列表。更新会话数据中保存的信息后,我需要将会话数据设置为此新信息。试图做一个像这样的 LINQ 查询,用户是全局会话数据,它持有个人,即列表。所以我需要在地址和城市等于这个的列表中查找,一旦发现我需要将状态设置为等于这个,它们只会成为列表中与之匹配的一条记录。

user.Individual = user.Individual.Where(a => a.address == "ABC" && a.city == "MIAMI").ToList()

因此,我可以通过上面的列表查找地址和城市的位置。如何根据Where 设置a.State=="FL",以及这两个是否为真/在列表中找到。

【问题讨论】:

  • 是否要将State 属性设置为结果列表中的所有元素?
  • 不只是说明地址和城市所在的位置
  • 如果您正在寻找地址为“ABC”且来自“FL”中“MIAMI”的个人,为什么不将&& s.State == "FL" 添加到“Where”条件中?
  • 因为 s.state 不等于 FL 我想设置 s.state == FL
  • == 用于比较,而不是赋值。从您选择的答案来看,您确实希望将结果列表中的元素的 State 属性设置为“FL”。

标签: c# linq list where lookup


【解决方案1】:

试试这个(假设你有一个人匹配你的 where 子句):

//get the user
var idividual = user.Individual.SingleOrDefault(a => a.address == "ABC" && a.city == "MIAMI");

if(idividual != null)
{
   idividual.State = "FL";

   //persist user in DB or elsewhere
}

如果结果集中有 1 个以上的项目,请执行以下操作:

//get the user
var idividuals = user.Individual.Where(a => a.address == "ABC" && a.city == "MIAMI").ToList();

individuals.ForEach(i=>i.State="FL");

【讨论】:

    【解决方案2】:

    您只需将 && 添加到 where agian ?

    user.Individual = user.Individual.Where(a => (a.address == "ABC" && a.city == "MIAMI") && a.State=="FL").ToList()
    

    编辑 set 是什么意思?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2023-03-03
      • 2018-05-26
      • 2018-06-20
      • 1970-01-01
      • 2014-12-19
      • 2020-06-17
      • 2018-11-08
      相关资源
      最近更新 更多