C# 搜索内部列表<;T>;对于匹配的两列

C# 搜索内部列表<;T>;对于匹配的两列,c#,linq,list,C#,Linq,List,我想在列表中存储对象,因此 创建了一个具有3个属性的类;建议1。建议2和建议3 例如,在我的列表中添加一个新项目 _st.Add(new Bld(100,20,"Test1"); _st.Add(new Bld(101,20,"Test2"); _st.Add(new Bld(102,54,"Test3"); 现在:如何搜索列表以获取项目的索引 包含myObj.prop2=20和myObj.prop3=“Test1” 我试过类似的方法 _st.Where(tk => tk.prop1 =

我想在列表中存储对象,因此 创建了一个具有3个属性的类;建议1。建议2和建议3

例如,在我的列表中添加一个新项目

_st.Add(new Bld(100,20,"Test1");
_st.Add(new Bld(101,20,"Test2");
_st.Add(new Bld(102,54,"Test3");
现在:如何搜索列表以获取项目的索引 包含myObj.prop2=20和myObj.prop3=“Test1”

我试过类似的方法

_st.Where(tk => tk.prop1 == 1000 AND tk.Title == "Test1");
但这显然不起作用

你知道怎么解决这个问题吗

提前感谢

您应该使用该方法,并使用
&&
而不是

_st.FindIndex(tk => tk.prop1 == 1000 && tk.Title == "Test1");

SQL运算符不需要应用:

_st.Where(tk => tk.prop1 == 1000 && tk.Title == "Test1");
您必须尝试以下方法:


要获取项目的索引,请使用方法,例如

_st.FindIndex(tk => tk.prop1 == 1000 && tk.Title == "Test1")
希望这会有帮助

“获取项目的索引”
int index1 = _st.Select((tk, index) => new { _st = tk, Index = index })
          .FirstOrDefault(tk => tk._st.prop1 == 1000 && tk._st.Name_ar == "Test1")
          .Index;
_st.FindIndex(tk => tk.prop1 == 1000 && tk.Title == "Test1")