同时检查字符串列表中项目的所有值

本文关键字:项目 检查 字符串 列表 | 更新日期: 2023-09-27 18:30:17

我有一个程序,只要有来自服务器的"信号",它就会突出显示服务器的名称。我有一个包含服务器信号的值列表,它每秒更新一次。我希望能够在下一个"滴答"之前一次检查整个列表,然后返回当时有信号的服务器,以便我可以突出显示它们。

我有以下代码,它确定哪个服务器具有 MOST 信号,以及哪个服务器具有信号存在的最长时间。你会认为我想做的事情会比这更简单,但由于某种原因,我迷路了。这是代码(完美运行)-

var mostSignals = serverInfo.Aggregate(emptyServer, (s1, s2) =>
{
    var s1Signals = int.Parse(s1?.Signals ?? "0");
    var s2Signals = int.Parse(s2?.Signals ?? "0");
    return s1Signals < s2Signals ? s2 : s1;
});
var longestHold = serverInfo.Aggregate(emptyServer, (s1, s2) =>
{
    var s1Hold = TimeSpan.Parse(s1?.LongestHold ?? "00:00");
    var s2Hold = TimeSpan.Parse(s2?.LongestHold ?? "00:00");
    return s1Hold < s2Hold ? s2 : s1;
});

在浏览了一些文章后,我发现了一篇似乎是正确的道路,但要么我做错了什么,要么不是我认为的那样——检查 string[] 中的所有值的长度?

我为此准备的当前代码-

var anySignals = serverInfo.Any(x => x.Signals != "0");

但是从我收集到的信息来看,如果任何服务器上有信号,它们只会返回真或假。

有什么想法吗?

同时检查字符串列表中项目的所有值

你想要的是:

var anySignals = serverInfo.Where(x => x.Signals != "0");

这将返回Signals不等于字符串"0"的所有服务器。

然后,您可以根据需要遍历突出显示名称的所有结果。