C# 从列表更改Linq查询<;字符串>;列出<;T>;where子句

C# 从列表更改Linq查询<;字符串>;列出<;T>;where子句,c#,linq,C#,Linq,我有一个linq查询,当我有一个单一值的列表时,它就可以工作了,现在我改为有一个包含多个属性的列表,我需要更改where子句 所以这是可行的: List<string> etchList = new List<string>(); etchList.Add("24"); var etchVect = (from vio in AddPlas where etchList.Any(v => vio.Key.Formatted.Equals

我有一个linq查询,当我有一个单一值的列表时,它就可以工作了,现在我改为有一个包含多个属性的列表,我需要更改where子句

所以这是可行的:

List<string> etchList = new List<string>();
etchList.Add("24");

var etchVect = (from vio in AddPlas
              where etchList.Any(v => vio.Key.Formatted.Equals(v))
              let firstOrDefault = vio.Shapes.FirstOrDefault()
              where firstOrDefault != null
              select new
              {
                  EtchVectors = firstOrDefault.Formatted
              }).ToList();
现在,由于这是列表中的一个列表,我想做一些类似于在每个属性中添加的事情 例如:

 where excelViolations.VioID.Any(vioId => vio.Key.Formatted.Equals(vioId)) 
但是这是不可能的,但是您可以看到,我正在尝试访问excelViolations中的VioID属性,并将其与vio列表中的键相匹配

where excelViolations.Any(vioId => vio.Key.Formatted.Equals(vioId))

然后我想它会工作的只要改变这行

where excelViolations.Any(vioId => vio.Key.Formatted.Equals(vioId))


然后我想它会起作用

你说的“在每个属性上做何处”是什么意思?您是否仍然只有要匹配的
VioID
?您希望与其他属性进行什么比较?因此在SQL中,我习惯使用Where VioID=24和RuleType=“SPATING”,因此我希望使用Where子句来匹配列表中的每个属性。但是您没有告诉我们您希望从何处获得“SPATING”。您仍然在使用AddPlas中vio的
规则类型
在哪里?是的,这就是我被卡住的地方:excelViolations.Any(vioId=>vio.Key.Formatted.Equals(vioId))我知道在我有新的excelVillations列表之前,我只有一个etchList,我收集到它只包含一个值“24”因此它是有效的。现在我想把这个列表换成一个列表,我是stuckWell,你们需要先确定你们的需求。这还不是编码问题-如果您不知道数据来自何处,我不知道我们可以如何帮助您。您所说的“在每个属性上执行何处操作”是什么意思?您是否仍然只有要匹配的
VioID
?您希望与其他属性进行什么比较?因此在SQL中,我习惯使用Where VioID=24和RuleType=“SPATING”,因此我希望使用Where子句来匹配列表中的每个属性。但是您没有告诉我们您希望从何处获得“SPATING”。您仍然在使用AddPlas中vio的
规则类型
在哪里?是的,这就是我被卡住的地方:excelViolations.Any(vioId=>vio.Key.Formatted.Equals(vioId))我知道在我有新的excelVillations列表之前,我只有一个etchList,我收集到它只包含一个值“24”因此它是有效的。现在我想把这个列表换成一个列表,我是stuckWell,你们需要先确定你们的需求。这还不是一个编码问题-如果你不知道数据来自哪里,我不知道我们可以如何帮助你。太好了,这是可行的!哦,我需要将excelVio.VioID转换为字符串(当前为int)我临时将VioID的属性从int更改为string,以使它能够在excelvillions.Any(excelVio=>vio.Key.Formatted.Equals(excelVio.VioID.ToString())下工作,多亏了againSweet,这就行了!哦,我需要将excelVio.VioID转换为字符串(当前为int),我临时将VioID的属性从int更改为string,以使其能够在excelvillions.Any(excelVio=>vio.Key.Formatted.Equals(excelVio.VioID.ToString())下工作,再次感谢
where excelViolations.Any(vioId => vio.Key.Formatted.Equals(vioId))
where excelViolations.Any(excelVio => vio.Key.Formatted.Equals(excelVio.VioID))