使用字符串描述符过滤集合

时间:2014-11-12 15:48:42

标签: c# .net

假设我有List个具有某些属性的对象:

public class Class1
{
    public string s1 {get; set;}
    public string s2 {get; set;}
    public string s3 {get; set;}
}

我想使用字符串过滤此List<Class1>,其中包含以下格式:

"s1=Hello,s3=Goodbye"

(可能通过网址)

当然我可以通常的方式解析字符串,然后遍历过滤器项目,通过反射比较属性名称等。

但是我想知道是否有人知道某个类似于此的图书馆或班级?这一切都相当乏味,如果做得不好可能会很慢,特别是对于有很多属性的课程。这个问题听起来很通用,以至于我确定其他人之前已经处理过,只是想知道是否有人知道任何优雅的解决方案?

1 个答案:

答案 0 :(得分:0)

这样的事情(通过使用Linq,更具体地说是Where子句):

var myList = new List<Class1> { new Class1 { s1 = "Hello", s3 = "Goodbye" }, new Class1 { s1 = "Goodbye", s3 = "Hello" } };

var filteredList = myList.Where(i => i.s1.Equals("Hello") && i.s3.Equals("Goodbye")).ToList();

filteredList现在只包含myList中的第一个元素。