【发布时间】:2017-10-06 22:31:24
【问题描述】:
试图创建一个自定义的 HashMap 类,但我被 GetEnumerator 卡住了。
当我将鼠标悬停在“test.entrySet()”上时,它会出现
'foreach 语句不能对'Project.Map'类型的变量进行操作,不包含'GetEnumerator'的公共定义'
我的 foreach 循环看起来像这样
foreach(Map<string, object> e in test.entrySet()) {
}
我的 HashMap 类是这样的
public class HashMap<K, V> {
private List<object> k = new List<object>();
private List<object> v = new List<object>();
public void put(object k, object v) {
this.k.Add(k);
this.v.Add(v);
}
public object get(object k) {
var i = 0;
foreach (var key in this.k) {
if (k.Equals(key)) {
return this.v.ElementAt(i);
}
i++;
}
return null;
}
public bool exist(object k) {
return this.k.Contains(k);
}
public void clear() {
this.k.Clear();
this.v.Clear();
}
public Map entrySet() {
return null;
}
}
我的地图类看起来像。我觉得这门课没啥用……
public class Map<K,V> {
private List<object> k = new List<object>();
private List<object> v = new List<object>();
public Map(List<object> k, List<object> v) {
this.k = k;
this.v = v;
}
public object getKey() {
return null;
}
public object getValue() {
return null;
}
}
如果有人可以帮助我修复此代码/提供一些提示,我将非常高兴。
应该是这样的
HashMap<string, object test = new HashMap<string, object>();
foreach(Map<string, object> e in test.entrySet()) {
string key = e.getKey();
string value = e.getValue();
}
【问题讨论】:
-
您为什么要创建自定义 HashMap?你能把
test变成Dictionary 吗?或者是创建自定义 HashMap 的目标? -
我不能像 HashMap 这样使用字典,这就是我制作自定义字典的原因
标签: c#