我有这段代码必须删除从 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/