在列表中查找方法

本文关键字:方法 查找 列表 | 更新日期: 2023-09-27 18:36:36

这是我的列表

public string state { get; set; }
public string city { get; set; }
public Point p1 { get; set; }
public Point p2 { get; set; }
public List<Explorer> line = new List<Explorer>();
public List<Explorer> rectangle = new List<Explorer>();
public List<Explorer> ellipse = new List<Explorer>();

这是我向列表代码添加元素

line.Add(new Explorer
            {
                state = "AAAA",
                city = "BBB",
                p1 = start,
                p2 = end
            });

与州和城市的价值观相关,我需要找到它们位置的点。

在列表中查找方法

可以使用 LINQ 筛选列表/检索所需的项:

使用位置

line.Where(e => e.state == "AAAA" && e.city == "BBB")
使用单个/单个或默认值/第一个

/第一个或默认值

line.SingleOrDefault(e => e.state == "AAAA" && e.city == "BBB")

如果仅对点感兴趣,则可以使用"选择投影"

var points = line.Where(e => e.state == "AAAA" && e.city == "BBB")
                    .Select(e=>Tuple.Create(e.p1, e.p2))
                    .Single();

你能试试

  line.Where(l=>l.state == "whatever" && l.city == "whatever").
       Select(p=> new() { point1 = p.p1, point2 = p.p2 }).ToList() 

如果您有如下资源管理器类列表,

List<Explorer> myList;
var result = myList.SingleOrDefault(d=> d.state="somthing" && d.city="Soemthing");
// access result.points here.