首页 > 解决方案 > 将函数转换为 Rx

问题描述

我是 Rx 世界的新手,我发现很难将下面的代码转换为 RX。

foreach (var filterGridStatusItem in FilterStatusItems)
{
    if (filterGridStatusItem.FilerValue.Equals(selectedItem.FilerValue))
    {
        if (!selectedItem.IsSelected)
        {
            filterGridStatusItem.IsSelected = true;
        }
        else
        {
            filterGridStatusItem.IsSelected = false;
        }
    }
}

任何帮助将不胜感激。

标签: c#system.reactive

解决方案


如前所述,Rx 不适合这种情况。在您的情况下,可以使用 Linq 更好地管理一组有限的固定项目,例如:

foreach (var filterGridStatusItem in FilterStatusItems
                       .Where(fsi => fsi.FilerValue.Equals(selectedItem.FilerValue))
{
    filterGridStatusItem.IsSelected = !selectedItem.IsSelected
}

推荐阅读