使用字符串描述符筛选集合

本文关键字:筛选 集合 描述 字符串 | 更新日期: 2023-09-27 18:30:12

假设我有具有某些属性的对象的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"

(可能通过URL)

当然,我可以用通常的方式解析字符串,然后循环通过过滤项,通过反射等与属性名称进行比较。

但我想知道是否有人知道有一个图书馆或班级已经在做这样的事情了?这一切都相当乏味,如果做得不好,可能会很慢,尤其是对于具有许多属性的类。这个问题听起来很普通,我相信其他人以前也处理过,只是想知道是否有人知道任何优雅的解决方案?

使用字符串描述符筛选集合

可能是这样的(通过使用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();

CCD_ 5现在将仅包含来自CCD_ 6的第一个元素。