搜索项目列表并使用LINQ获取整个条目

时间:2016-06-20 21:50:29

标签: c# linq list

如果带有名为List<Coord>

的元素的条目,我有一个Segment, startX, startY, endX, endY.

问题是:当我有某个细分时,我想在List搜索它,当我找到它时,将包括segment, startx, starty ..在内的整个条目复制到一个新列表中。如果可能的话,我想使用LINQ表达式。

添加条目的类:

public class Coord
{
    public string Segment { get; set; }
    public double startX { get; set; }
    public double startY { get; set; }
    public double endX { get; set; }
    public double endY { get; set; }
    public string Naziv { get; set; }
}

因此,如果我有一个segmet值,我想在List<Coord>搜索它,当我找到它时,将相应的坐标和段(整个索引)复制到一个新的{{1 }}

2 个答案:

答案 0 :(得分:2)

给定Coord needleList<Coord> haystack,您可以var myNewList = haystack.Where(c -> c.Segment == needle.segment).ToList()

答案 1 :(得分:0)

您可以使用以下代码:

string lookedSegment = ...
List<Coord> newList = originalList.Where((c) => c.Segment == lookedSegment).ToList();

上面的代码会创建一个包含当前条目的新列表,如果您需要新条目,可以使用以下代码克隆它们:

List<Coord> newList = originalList.Where((c) => c.Segment = lookedSegment)
                                  .Select((c) => new Coord {
                                     Segment = c.Segment,
                                     startX = c.startX,
                                     startY = c.startY,
                                     endX = c.endX,
                                     endY = c.endY,
                                     Naziv = c.Naziv
                                  })
                                  .ToList();