在List <t>中搜索匹配</t>的2列

时间:2013-01-05 11:54:21

标签: c# linq list

我想将对象存储在List中,因此 创建了一个包含3个属性的类; PROP1。 prop2和prop3。

要将新项目添加到我正在使用的列表

_st.Add(new Bld(100,20,"Test1");
_st.Add(new Bld(101,20,"Test2");
_st.Add(new Bld(102,54,"Test3");

现在:如何搜索列表以获取Item的索引 包含myObj.prop2 = 20 AND myObj.prop3="Test1"

我尝试过像

这样的东西
_st.Where(tk => tk.prop1 == 1000 AND tk.Title == "Test1");

但这显然不起作用。

知道如何解决这个问题吗?

提前致谢

4 个答案:

答案 0 :(得分:5)

您应该使用FindIndex方法,并使用&&代替AND

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

答案 1 :(得分:2)

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

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

希望这会有所帮助!!

答案 2 :(得分:1)

SQL运算符不需要应用:

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

答案 3 :(得分:0)

你必须尝试这个:FindIndex Method

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

OR

int index1 = _st.Select((tk, index) => new { _st = tk, Index = index })
          .FirstOrDefault(tk => tk._st.prop1 == 1000 && tk._st.Name_ar == "Test1")
          .Index;