c# - C#计数并列出另一个方法的字典对
问题描述
我有下面的代码,我需要找到字典的数量和所有对,但它属于另一个命名空间的方法:
using sys = System;
using gen = System.Collections.Generic;
namespace xtra
{
class TestClass
{
public void Sing()
{
gen::Dictionary<string, int> dict = new gen::Dictionary<string, int>()
{
["A"] = 1,
["B"] = 2,
["C"] = 3
};
}
}
}
namespace ConsoleApp99
{
class Program
{
static void Main(string[] args)
{
xtra.TestClass Joe = new xtra.TestClass();
Joe.Sing();
foreach (string name in Joe.Keys) //error!
sys.Console.WriteLine($"{name} {dict[name]}"); //error!
}
}
}
因此,方法 Sing 创建并填充字典,但是,在另一个命名空间(在 Main)中实例化时,我可以创建它,但是,我如何计算对并打印它们的值?我知道乔是一种制作字典的方法,但我不知道参考乔的字典..
解决方案
您需要将此字典定义为内部的公共属性TestClass
,以便从不同的类/命名空间访问它:
namespace xtra
{
class TestClass
{
public Dictionary<string, int> Dict { get; set; }
public void Sing()
{
Dict = new Dictionary<string, int>()
{
["A"] = 1,
["B"] = 2,
["C"] = 3
};
}
}
}
namespace ConsoleApp99
{
class Program
{
static void Main(string[] args)
{
xtra.TestClass Joe = new xtra.TestClass();
Joe.Sing();
foreach (string name in Joe.Dict.Keys) //error!
sys.Console.WriteLine($"{name} {Joe.Dict[name]}"); //error!
}
}
}
推荐阅读
- scala - 重新定位,现在面临 Scala 依赖问题
- java - Java Eclipse - 未定义的构造函数和方法
- python - 更改数据框中的值
- c++ - 为什么 std:set (带有单个冒号)可以编译?
- xml - 使用 Resources.resx 在 MVVM 的视图中显示越南语和中文(多语言)
- mysql - SQL Join 并获取表中的计数
- sqlite - 需要一些关于 Sqlite 数据库的指导
- node.js - 我应该使用扫描还是查询?
- android - Android 自定义列表视图不会在较新的 Android SDK 22+ 上更新
- assembly - 如何在没有 0x00 或 0xFF 字节的情况下获取 x86_64 中的指令指针?