gpt4 book ai didi

c# - SpecExplorer 如何对 Microsoft.Modeling.Sequence 进行排序

转载 作者:行者123 更新时间:2023-11-28 20:43:15 24 4
gpt4 key购买 nike

我正在使用 SpecExplorer 生成测试套件。我有一个函数应该返回一组排序的字符串(与 List.Sort() 相同的排序行为)。

在模型中,我使用的是 Microsoft.Modeling.Sequence。不可能使用列表,因为如果您使用列表,SpecExplorer 无法评估当前状态...

我的问题是:如何在不使用列表的情况下返回已排序的 Microsoft.Modeling.Sequence ...我知道我可以将所有字符串相互比较,并且在每个比较步骤中创建一个新的不可变序列,但这似乎太复杂了。有更简单的解决方案吗?

题外话:没有 SpecExplorer 标签...

编辑:

当前工作示例

Sequence<string> toSort = new Sequence<string>(new string[] { "Delta", "delta", "Alpha", "Gamma", "Beta" });
Sequence<string> sorted = new Sequence<string>();

while (toSort.Count != 0)
{
int currentMaxIndex = -1;
for (int i = 0; i < toSort.Count; i++)
if (currentMaxIndex == -1 || toSort[i].CompareTo(toSort[currentMaxIndex]) < 0)
currentMaxIndex = i;
sorted = sorted.Add(toSort[currentMaxIndex]);
toSort = toSort.RemoveAt(currentMaxIndex);
}

最佳答案

可能有些问题:

  • 对于应该返回排序序列的函数:此函数是否在模型中使用,即在规则方法中使用,序列是规则参数吗?
  • 假设是:您为什么要对排序序列建模?根据定义,在序列中,顺序很重要。如果您对序列进行排序,顺序并不重要,因为顺序始终相同:定义的排序顺序?
  • 这就是 Microsoft.Modeling.Sequence 没有排序功能并且拥有一个不是很重要的原因。
  • 如果是这种情况,您可以在模型中使用 Microsft.Modeling.Set 类型的规则参数。您的模型探索将变得更小、更快和更清晰,任何绳索场景也将以某种方式尝试分割状态空间。
  • 如果您的序列不是规则参数,您可以轻松使用任何 C# 代码(例如列表)。 Spec Explorer 应该没有任何问题。
  • 如果由于未知原因您确实需要排序,也许 Linq 可以使您的代码更短、更好...

关于c# - SpecExplorer 如何对 Microsoft.Modeling.Sequence 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258565/

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