如何使用LINQ枚举字典

18 浏览
0 Comments

如何使用LINQ枚举字典

我有以下内容:

private enum Properties
{ one, two, three }
private Dictionary  PropertyToString;
private Dictionary  StringToProperty;

我该如何使用LINQ来填充每个字典,以便我可以使用以下方式?是否有一行的LINQ语句可以填充每个字典?

Properties MyResult = StringToProperty["One"];
String MySResult = PropertyToString[Properties.One];

在第二个案例中,我特别希望使用实际的属性作为索引。

0
0 Comments

如何使用LINQ枚举字典?

在这个问题中,用户想要了解如何使用LINQ来枚举字典。下面是解决此问题的方法:

用户给出了一个示例代码,其中使用了LINQ来枚举字典。首先,通过Enum.GetValues获取枚举类型的所有值,并使用.Cast<Properties>将其转换为Properties类型的枚举。接下来,使用.ToDictionary方法将枚举值映射到对应的枚举名称。这样就得到了一个将枚举值映射到枚举名称的字典。

用户指出PropertyToString字典其实是不必要的,因为可以直接使用Enum.GetName方法获取枚举值对应的名称。

用户还问道在使用Enum.GetValues后是否需要.Cast<Properties>.OfType<Properties>来使用LINQ。另一个用户指出Enum.GetValues返回的是Array类型,所以确实需要将其转换为Properties类型的枚举。

还有用户提到可以将PropertyToString的过程进一步简化为String MySResult = Properties.One.ToString()

用户还提出了使用StringToProperty的另一种方法,即使用Enum.Parse方法将字符串转换为枚举值。用户还建议将该方法封装到一个辅助方法中,以便用户更方便地使用。

最后,用户指出解析可能比字典查找慢一些,但总体来说是正确的。

用户感谢了其他用户的回答,并提醒用户如果答案解决了问题,可以通过点击勾选标记来接受答案。

最后,用户提出了另一个问题,即如何使用LINQ枚举字典的另一种情况,但并没有给出具体的示例或问题描述。

通过以上内容,我们可以得出问题的原因是用户想要了解如何使用LINQ来枚举字典。解决方法是使用Enum.GetValues方法获取枚举类型的所有值,并使用LINQ的.Cast<T>方法将其转换为对应的枚举类型。然后,可以使用.ToDictionary方法将枚举值映射到对应的枚举名称,从而得到一个枚举值和枚举名称之间的字典。另外,还可以使用Enum.GetName方法直接获取枚举值对应的名称。此外,还可以使用Enum.Parse方法将字符串解析为枚举值。

以上就是如何使用LINQ来枚举字典的方法。希望对您有所帮助!

0