gpt4 book ai didi

c# - 需要帮助完成或重写此算法以导航通用集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:23 26 4
gpt4 key购买 nike

我正在尝试编写算法代码,根据用户是否单击“前进”按钮或“后退”按钮来设置当前对象。

public Step CurrentStep
{
get { return _currentStep; }
set
{
if (_currentStep != value)
{
_currentStep = value;
OnPropertyChanged("CurrentStep");
}
}
}

private int CurrentStepIndex { get; set; }

private void NextStep()
{
CurrentStepIndex++;
GotoStep();
}

private void PreviousStep()
{
CurrentStepIndex--;
GotoStep();
}

private void GotoStep()
{
var query = from step in CurrentPhase.Steps
where ????
select step;

CurrentStep = query.First();
}

CurrentPhase.Steps是一个 ObservableCollection<Step> Steps {get; set;} .在此类的构造函数中,我有一种方法可以为属性“CurrentStep”设置默认值,因此总会有一个跳板。

鉴于此集合,我希望使用 CurrentStep 的索引对象存储在 CurrentStepIndex 中去查找该项目在集合中的位置,然后通过递减或递增来更改该索引。然后,使用某种 linq 查询,在新索引处找到“下一步”。

不幸的是,我很难制定我的 LINQ 查询。更重要的是,我不确定这个算法是否会起作用。

我需要什么来完成我的 LINQ 查询才能使该算法起作用?

或者,是否有更好的方法来实现我想要的?

最佳答案

这里没有必要使用LINQ。 ObservableCollection<T>继承自 Collection<T>其中有 Items属性(C# 中的索引器)。这意味着您可以使用以下代码代替 LINQ:

private void GotoStep()
{
CurrentStep = CurrentPhase.Steps[CurrentStepIndex];
}

关于c# - 需要帮助完成或重写此算法以导航通用集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113205/

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