c# 如何在使用 list.Remove 时遍历列表中的每个项目

标签 c#

我有这段代码必须删除从 1 到 700 的所有数字,其中包含大于 6 的数字

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Sevenland_Numbers
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> numbers = new List<string>();

            for (int i = 0; i <= 700; i++)
            {
                numbers.Add(i.ToString());

            }

            for (int i = 0; i <numbers.Count; i++)
            {
                if (numbers[i].Contains('7') || numbers[i].Contains('8') || numbers[i].Contains('9'))
                {
                    numbers.Remove(numbers[i]);
;
                }

            }
            for (int i = 0; i < numbers.Count; i++)
            {
                Console.WriteLine(numbers[i]);
            }


        }
    }
}

但是当我使用 Remove 时,列表会调整大小,所以我不会使用 for 循环遍历所有元素。有解决这个问题的简单方法吗?

最佳答案

这里有一个简单的方法:

var toRemove = "789";
numbers.RemoveAll(n => toRemove.Any(r => n.Contains(r)));

关于c# 如何在使用 list.Remove 时遍历列表中的每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19845844/

相关文章:

c# - 您可以将 Expression<Func<T, bool>> 谓词传递到 linq Where 语句中吗?

c# - 在 C# 中按字符拆分字符串

c# - 从登录 ID 获取用户 SID(Windows XP 及更高版本)

c# - 使用正则表达式进行部分搜索?

c# - 在 AutoPostBack = true 上触发 jQuery 代码?

c# - 如何使用 C# 以科学格式解析 double

c# - Xamarin LiteDB UnauthorisedAccessException

c# - 如何使用 DataContractSerializer 反序列化具有未命名类型集合的 JSON

c# - 从实体对象获取 ObjectContext 引用的最快方法是什么?

c# - 如何将结构绑定(bind)到 DropDownList