【发布时间】:2023-01-10 20:31:40
【问题描述】:
我有下面提到的列表。
var fakedata = new Dictionary<Gateway, List<FeMeasurementValues>>()
{
{
new Gateway { SiteId = 1, FirmwareVersion = "1.1.1", ConnectivityStatus = GatewayConnectivityStatus.ReadyToConnect },
new List<FeMeasurementValues>() { new FeMeasurementValues { MeasurementName = "MsgLRRID", Values = new List<FeValue> { new FeValue { Value = "FFFF123", Horodate = DateTime.Now } } } }
},
{
new Gateway { SiteId = 2, FirmwareVersion = "1.1.2", ConnectivityStatus = GatewayConnectivityStatus.Connected },
new List<FeMeasurementValues>() { new FeMeasurementValues { MeasurementName = "MsgLRRID", Values = new List<FeValue> { new FeValue { Value = "GH67123", Horodate = DateTime.Now } } } }
},
{
new Gateway { SiteId = 3, FirmwareVersion = "1.1.3", ConnectivityStatus = GatewayConnectivityStatus.Disconnected },
new List<FeMeasurementValues>() { new FeMeasurementValues { MeasurementName = "MsgLRRID", Values = new List<FeValue> { new FeValue { Value = " ", Horodate = DateTime.Now } } } }
},
{
new Gateway { SiteId = 4, FirmwareVersion = "1.1.1", ConnectivityStatus = GatewayConnectivityStatus.Connected },
new List<FeMeasurementValues>() { new FeMeasurementValues { MeasurementName = "MsgLRRID", Values = new List<FeValue> { new FeValue { Value = "SA67123", Horodate = DateTime.Now } } } }
}
};
我有两种方法
- “GetPublicNetworkUsedCount()”需要返回以“FFFF”开头的Value的计数 所以,在这种情况下,输出应该是 1。
- “GetPrivateNetworkUsedCount()”需要返回不以“FFFF”开头且包含空值的值的计数。
所以,在这种情况下,输出应该是 3。
以下是我尝试过的:
private static string GetPublicNetworkUsedCount(List<FeValue> values) { var countofPublicNetwork = values.Where(x => x.Value.Any(f => x.Value.StartsWith("FFFF"))); return countofPublicNetwork.Count().ToString(); } private static string GetPrivateNetworkUsedCount(List<FeValue> values) { var countofPrivateNetwork = values.Where(x => x.Value.Any(f => !x.Value.StartsWith("FFFF"))); return countofPrivateNetwork.Count().ToString(); }我得到错误的输出,对于 GetPublicNetworkUsedCount 为 0,对于 GetPrivateNetworkUsedCount 为 1。
请帮我。
【问题讨论】:
-
你到底怎么称呼这两个?他们不接受您在第一本词典中拥有的 FeMeasurementValues。
-
您能否将其更新为可以执行以演示问题的minimal reproducible example?我不清楚这两段代码是如何具体一起使用的。
-
请注意,如果您的 FeMeasurementValue 具有多个 FeValue,则代码中的两个条件并不相反。如果它有两个,一个以 FFFF 开头,一个不以 FFFF 开头,那么它可以通过这些实现既是公共的又是私有的。如果它没有 FeValues 则两者都不是。