通过第三方代码工作,C#解密

通过第三方代码工作,C#解密,c#,C#,我正在研究一些C#代码,试图了解发生了什么。我已经到达了感兴趣的部分,我很想知道这个条件在说什么。我对C#不是很精通,想知道是否有人能把这句话翻译成英语 if (!executeItemCommand._container.Adapters.Where<IAdapter>((Func<IAdapter, bool>) (i_X => i_X.Identity.Equals("MeasureViews"))).Any<IAdapter>()) if(!

我正在研究一些C#代码,试图了解发生了什么。我已经到达了感兴趣的部分,我很想知道这个条件在说什么。我对C#不是很精通,想知道是否有人能把这句话翻译成英语

if (!executeItemCommand._container.Adapters.Where<IAdapter>((Func<IAdapter, bool>)
 (i_X => i_X.Identity.Equals("MeasureViews"))).Any<IAdapter>())
if(!executeItemCommand.\u container.Adapters.Where((Func)
(i_X=>i_X.Identity.Equals(“MeasureViews”)).Any()

最初,这可能是这样的:

!executeItemCommand._container.Adapters.Any(a => a.Identity.Equals("MeasureViews"))
此条件检查容器中是否没有
Identity
等于“MeasureViews”的适配器。因此,如果存在错误,它将返回
false

您可能对位于的LINQ
.Any()
上的此文档感兴趣,以便进一步学习

作为一个评论,imho这样重写会更干净:

executeItemCommand._container.Adapters.All(a => !a.Identity.Equals("MeasureViews"))

最初,这可能是这样的:

!executeItemCommand._container.Adapters.Any(a => a.Identity.Equals("MeasureViews"))
此条件检查容器中是否没有
Identity
等于“MeasureViews”的适配器。因此,如果存在错误,它将返回
false

您可能对位于的LINQ
.Any()
上的此文档感兴趣,以便进一步学习

作为一个评论,imho这样重写会更干净:

executeItemCommand._container.Adapters.All(a => !a.Identity.Equals("MeasureViews"))

“如果此
executeItemCommand
不包含任何带有
.Identity
MeasureViews
适配器,那么…”或者更简洁地说,“如果
executeItemCommand
没有
MeasureViews
适配器…”谁会以这种风格编写?@Jeroemoster我现在正试图阅读您所说的内容并“连接”它与代码的语法一致。谢谢。@BogdanDoicin也许,这是反编译源代码,因为它看起来与反编译源代码一模一样。@BogdanDoicin这是一个第三方应用程序,在某个特定点不断崩溃,我正在尝试查看是否可以在某些代码中找到问题“如果这个
executeItemCommand
不包含任何带有
.Identity
MeasureViews
适配器,那么…”或者更简洁地说,“如果
executeItemCommand
没有
MeasureViews
适配器…”谁会用这种风格写呢?@Jeroemoster我现在正试着读你说的话并“连接”“它符合代码的语法。谢谢。@BogdanDoicin也许,这是反编译源代码,因为它看起来与反编译源代码一模一样。@BogdanDoicin这是一个第三方应用程序,在某个特定点不断崩溃,我正在尝试看看是否能在某些代码中找到问题原始代码可能是
!executeItemCommand.\u container.Adapters.Where(a=>a.Identity==“MeasureViews”).Any()
(假设
.Identity
实际上是一个
字符串
)。将条件移动到
.Any()
会更改实际调用。到底什么样的变化才是“更干净”是非常主观的,当然,写这篇文章有很多方法。谢谢你们,你们让我更清楚了。最近在VB.NET上做了很多工作之后,我一直在等待转换到C#。原始代码可能是
!executeItemCommand.\u container.Adapters.Where(a=>a.Identity==“MeasureViews”).Any()
(假设
.Identity
实际上是一个
字符串
)。将条件移动到
.Any()
会更改实际调用。到底什么样的变化才是“更干净”是非常主观的,当然,写这篇文章有很多方法。谢谢你们,你们让我更清楚了。在最近与VB.NET进行了大量工作之后,我一直在等待向C#的过渡。