gpt4 book ai didi

C# 根据用户输入的范围检查数字列表

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:21 24 4
gpt4 key购买 nike

我需要根据用户输入的范围检查数字列表,例如,用户将输入 105323 到 106324 的范围。该列表表示用户知道缺失的数字。因此,如果用户输入范围并且列表包含 106100 和 106101,我需要输出范围内的所有数字,跳过或删除 106100 和 106101。我确信这很简单,但我只是遇到了问题逻辑。这是我目前所拥有的

        var startSeq = uxSeqStart.Text;
var startNum = Convert.ToInt32(startSeq);
var endSeq = uxSeqEnd.Text;
var endNum = Convert.ToInt32(endSeq);

for (var a = startNum; a <= endNum; a++)
{

foreach (int num in _MissingInt.ToList())
{
if (num + 1 == a) { _MissingInt.Remove(num); }
}

Console.WriteLine(a);//test output not a console app
}

}

我希望我问的是有道理的。如果我在正确的道路上,请告诉我,非常感谢任何输入

最佳答案

如果我没理解错的话,你有一个不应包含在某个范围内的整数列表,并且你从用户那里得到了一个整数范围。然后您想从范围中删除“缺失的整数”。

生成一系列连续数字的简单方法是使用 System.Linq 方法 Enumerable.Range(),您可以在其中传递起始数字和要生成的数字计数。我们可以使用用户输入的起始编号,但是因为他们输入的是结束编号而不是计数,所以我们需要做一些数学运算来确定计数:

// Generate a range of numbers based on the user input
var range = Enumerable.Range(startNum, endNum - startNum + 1);

然后您可以在范围上使用另一个名为 Except()System.Linq 扩展方法来删除 _MissingInt 列表中的项目,如果它们存在。 Except 表示“包括原始列表中的所有项目,但存在于另一个列表中的项目除外”:

// Remove any numbers in the _MissingInt from range if they exist
range = range.Except(_MissingInt);

将它们放在一起,它看起来像:

static void Main()
{
var _MissingInt = new List<int> { 106100, 106101 };

var startNum = 105323;
var endNum = 106101;

var range = Enumerable.Range(startNum, endNum - startNum + 1).Except(_MissingInt);

// Output the range with missing ints removed
Console.WriteLine("Modified Range:");
Console.WriteLine(string.Join(", ", range));

Console.Write("\nDone!\nPress any key to exit...");
Console.ReadKey();
}

输出

(请注意,我们的 _MissingInt 列表中的最后两个数字已被删除):

enter image description here

关于C# 根据用户输入的范围检查数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44249308/

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