我有范围序列。我想知道他们的任何缺失序列。
假设我们有3个边距0 -25,25-50,75-100 因此程序将结果显示为50-75。缺少序列。
答案 0 :(得分:0)
正如其他人所说,你应该至少提供一些代码供我们开始使用。 IMO也与ASP.NET无关。
以下是可能有所帮助的解决方案。
我假设了一些事情
List<string>
查看以下代码
List<string> margin = new List<string>() { "0-25", "25-50", "100-125" };
List<List<int>> splitedMargin = new List<List<int>>();
foreach (var item in margin)
{
var arr = item.Split('-');
splitedMargin.Add(new List<int>() { int.Parse(arr[0]), int.Parse(arr[1]) });
}
//Required missing margin
List<string> missingMargin = new List<string>();
int marginSize = splitedMargin[0][1] - splitedMargin[0][0];
for (int i = 1; i < splitedMargin.Count; i++)
{
if (splitedMargin[i - 1][1] != splitedMargin[i][0])
{
int missingMarginCount = (splitedMargin[i][0] - splitedMargin[i - 1][1]) / marginSize;
if (missingMarginCount == 1)
missingMargin.Add(splitedMargin[i - 1][1].ToString() + "-" + splitedMargin[i][0].ToString());
else
{
for (int j = 0; j < missingMarginCount; j++)
{
missingMargin.Add((splitedMargin[i - 1][1] + (marginSize * j)).ToString() + "-" + (splitedMargin[i - 1][1] + (marginSize * (j + 1))).ToString());
}
}
}
}
希望这有帮助