C# 这是确定INT列表包含0的最佳方法吗?
这是确定列表ALogMsgTypeIntArray包含0的最佳方法吗C# 这是确定INT列表包含0的最佳方法吗?,c#,C#,这是确定列表ALogMsgTypeIntArray包含0的最佳方法吗 if (ALogMsgTypeIntArray.Exists(delegate(int i) { return i == 0; })) { MessageBox.Show("0 exists"); } ========== 更新: 我最终是这样做的: bGetDebug = ALogMsgTypeIntList.Contains(LogParsePumpViewerConsts.LOG_MSG_TYPE_DEBUG)
if (ALogMsgTypeIntArray.Exists(delegate(int i) { return i == 0; }))
{
MessageBox.Show("0 exists");
}
==========
更新:
我最终是这样做的:
bGetDebug = ALogMsgTypeIntList.Contains(LogParsePumpViewerConsts.LOG_MSG_TYPE_DEBUG);
bGetInfo = ALogMsgTypeIntList.Contains(LogParsePumpViewerConsts.LOG_MSG_TYPE_INFORMATION);
bGetWarning = ALogMsgTypeIntList.Contains(LogParsePumpViewerConsts.LOG_MSG_TYPE_WARNING);
bGetError = ALogMsgTypeIntList.Contains(LogParsePumpViewerConsts.LOG_MSG_TYPE_ERROR);
您可以使用:
这取决于你的“最佳”标准。如果“最短源代码”是您的主要目标,那么答案是否定的:
if (ALogMsgTypeIntArray.Exists(i => i == 0)
{
MessageBox.Show("0 exists");
}
为了OP的好处,我要指出,
I=>I==0
只是delegate(inti){return I==0;}
。您应该将列表命名为…IntList
,而不是…IntArray
,因为这可能会混淆其他开发人员如何使用您的变量。int数组应该是int[]
@Douglas:这不仅适用于其他开发人员;)问题标题中包含你应该使用的方法的名称,这有点讽刺。@Douglas:你的建议更好,但仍然不太好。名称不应该包含类型机制的描述,也不应该包含abbrvtns。这个名称的正确名称类似于MessageTypes
。常量应该类似于LogParsePumpViewerType.Debug
,而不是LogParsePumpViewerConsts.LOG\u MSG\u TYPE\u Debug
。本地人不应以“匈牙利”式前缀作为前缀;使用getDebug
,而不是bGetDebug
。请阅读框架设计指南,了解关于如何遵循最佳命名实践的许多好建议。@phoog:我个人不会使用“Db”。还有其他一些有趣的命名案例:例如System.Security.Cryptography.RSA。一方面,指导方针说不要把大写字母放在一起。另一方面,没有人想轻视沙米尔和阿德尔曼。礼貌,在这种情况下,赢了。不开玩笑,你的化身看起来非常像(当然是漫画)我的长子(他28岁)。
if (ALogMsgTypeIntArray.Exists(i => i == 0)
{
MessageBox.Show("0 exists");
}
ALogMsgTypeIntArray.Any(item => item == 0)