gpt4 book ai didi

c# - 从类列表中包含的列表中删除字符串

转载 作者:行者123 更新时间:2023-12-02 15:45:35 26 4
gpt4 key购买 nike

我有以下列表:

List<MyClass> problemList = new List<MyClass>;

该类的结构如下:

public class MyClass
{
public int UserId { get; set; }
public string FullName { get; set; }
public string Role { get; set; }
public List<string> ForumList { get; set; }

public MyClass()
{
ForumList = new List<string>();
}
}

我有另一个列表作为参数发送:

List<string> fForums = new List<string>;

我需要能够浏览我的ProblemList.ForumList并删除所有论坛名称不在fForums列表中。

我让这个工作结束导致我在引用修改循环中的问题列表时遇到错误。 (我的代码可能无法工作,因为我已经删除了代码,但我试图记住它)

foreach (var i in problemList)
foreach (var n in i.ForumList)
if (!fForums.Contains(n))
i.ForumModList.Remove(n);

有谁知道如何实现这个功能吗?提前致谢!

最佳答案

最明显的途径是创建两个论坛列表的交集并将其分配给属性:

problemList.ForEach(mc => mc.ForumList = mc.ForumList.Intersect(fForums).ToList());

对于以下示例:

List<MyClass> problemList = new List<MyClass>
{
new MyClass {ForumList = new List<string>{"aaa", "bbb", "ccc"}},
new MyClass {ForumList = new List<string>{"aaa", "bbb"}},
new MyClass {ForumList = new List<string>{"xxx", "yyy"}},
};

List<string> fForums = new List<string> {"aaa", "bbb"};

problemList.ForEach(mc => mc.ForumList = mc.ForumList.Intersect(fForums).ToList());

问题列表中的项目的论坛列表将具有以下值:

1:"aaa","bbb"

2:"aaa","bbb"

3:<empty>

关于c# - 从类列表中包含的列表中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com