从列表中删除对象

问题描述 投票:1回答:3

我有以下列表-

public class edgeData
{
    public string source { get; set; }
    public string target { get; set; }
}

var edgeList = new List<edgeData>();
var linkCount = 1;

当源总和小于或等于edgeData时,我想从edgeList中删除linkCount条目。

例如建立我的edgeData-

var newEdge = new edgeData();
newEdge.source = "James";
newEdge.target = 1;
edgeList.Add(newEdge);

var newEdge = new edgeData();
newEdge.source = "Greg";
newEdge.target = 2;
edgeList.Add(newEdge);

var newEdge = new edgeData();
newEdge.source = "James";
newEdge.target = 3;
edgeList.Add(newEdge);

然后执行删除小于或等于linkCount-的条目的过程>

public List<edgeData> RemoveLinks(List<edgeData>() edgeList, int linkCount)
{
    var updatedEdgeData = new List<edgeData>();

    // logic

    return updatedEdgeData;
}

因此,在该示例中,包含“ Greg”作为源的条目将被删除,因为他只发生了一次,该次数等于linkCount。

我尝试过使用for循环执行此操作,但是很快就变得非常丑陋,并且相信Linq是最好的选择,但是我该如何实现呢?

我有以下列表-公共类edgeData {公共字符串源{get;组; }公共字符串目标{get;组; }} var edgeList = new List (); var linkCount = 1;我...

c# list linq
3个回答
4
投票

您可以执行以下操作


0
投票

[基本上只是计算名称的出现,然后在列表上循环并删除您不喜欢的名称(连接不足)


0
投票

当源共同出现的次数小于或等于linkCount时,我想从edgeList中删除edgeData条目。

© www.soinside.com 2019 - 2024. All rights reserved.