在C#中迭代一个集合

chr*_*ris 1 c#

我创建了以下类:

[Serializable]
public class AppContext : IXmlSerializable {
    public string reportType = string.Empty;
    public string entityId = string.Empty;

    // OPTIONS
    public IDictionary<string, OPTIONS> dict_Options = new Dictionary<string, OPTIONS>();
    // Advanced Options
    public List<string> listAdvancedOptions = new List<string>();



    public class OPTIONS {
        public string subjectId = string.Empty;
        public string varNumber = string.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何迭代OPTIONS以获取所有varNumbers?

Bri*_*eon 6

方法1

foreach (KeyValuePair<string, AppContext.OPTIONS> kvp in appContext.dict_Options)
{
  Console.WriteLine(kvp.Value.varNumber);
}
Run Code Online (Sandbox Code Playgroud)

方法2

foreach (AppContext.OPTIONS item in appContext.dict_Options.Values)
{
  Console.WriteLine(item.varNumber);
}
Run Code Online (Sandbox Code Playgroud)

方法3

foreach (string item in appContext.dict_Options.Select(x => x.Value.varNumber))
{
  Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)