如何将条件检查从 C# 转换为 Java?
How to convert a condition check from C# to Java?
我正在尝试将这行代码从 C# 转换为 Java,但我很难理解它。
isEqual = !dbCertDict.Keys.Any(x => !String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ? requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));
最初,dbCertDict 是 Dictionary<string, string>
类型,现在是 HashMap<String, String>
类型。本质上,我想在 Java 中编写一个函数,如果 dbCertDict 和 requestCertDict 中的所有项目都匹配,该函数会将 isEqual
设置为 true。如果有任何不匹配,我希望它 return false。
至少,这就是我认为这行 C# 代码所做的...感谢任何帮助!
我试图搜索与 Any()
等效的函数,但我能找到的最接近的函数是将 dbCertDict.Keys.Any
替换为 dbCertDict.keySet().contains()
,但不幸的是它们并不相同。 .
isEqual = !dbCertDict.Keys.Any(x =>
!String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ?
requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));
boolean isEqual = !dbCertDict.keySet().stream().anyMatch(x ->
dbCertDict.get(x).equalsIgnoreCase(requestCertDict.containsKey(x) ?
requestCertDict.get(x) : ""));
或类似的东西。
后者可以收紧到
boolean isEqual = dbCertDict.entrySet().stream().noneMatch(x ->
x.getValue().equalsIgnoreCase(requestCertDict.getOrDefault(x.getKey(), "");
我正在尝试将这行代码从 C# 转换为 Java,但我很难理解它。
isEqual = !dbCertDict.Keys.Any(x => !String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ? requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));
最初,dbCertDict 是 Dictionary<string, string>
类型,现在是 HashMap<String, String>
类型。本质上,我想在 Java 中编写一个函数,如果 dbCertDict 和 requestCertDict 中的所有项目都匹配,该函数会将 isEqual
设置为 true。如果有任何不匹配,我希望它 return false。
至少,这就是我认为这行 C# 代码所做的...感谢任何帮助!
我试图搜索与 Any()
等效的函数,但我能找到的最接近的函数是将 dbCertDict.Keys.Any
替换为 dbCertDict.keySet().contains()
,但不幸的是它们并不相同。 .
isEqual = !dbCertDict.Keys.Any(x =>
!String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ?
requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));
boolean isEqual = !dbCertDict.keySet().stream().anyMatch(x ->
dbCertDict.get(x).equalsIgnoreCase(requestCertDict.containsKey(x) ?
requestCertDict.get(x) : ""));
或类似的东西。
后者可以收紧到
boolean isEqual = dbCertDict.entrySet().stream().noneMatch(x ->
x.getValue().equalsIgnoreCase(requestCertDict.getOrDefault(x.getKey(), "");