你的版本尝试打印s.Keys
和s.Values
,这两者都是集合。您可以使用一个循环打印出来,但你可以使用string.Join
两次来代替:
public override string ToString() {
return string.Join(
",",
myDict.Select(
p => string.Format(
"{0}:{1}",
p.Key,
string.Join(",", p.Value.Select(x => string.Format("{0}={1}", x.Key, x.Value)))
)
);
}
注1:上述语法使用string.Format
,而不是string interpolation,在这两个电话。如果您使用的是C#的新版本,你可以把它改写为稍短的代码,例如
string.Join(",", p.Value.Select(x => $"{x.Key}={x.Value}"))
注2:对于旧版本的.NET的加入ToArray()
都选择后:
return string.Join(
",",
myDict.Select(
p => string.Format(
"{0}:{1}",
p.Key,
string.Join(",", p.Value.Select(x => string.Format("{0}={1}", x.Key, x.Value)).ToArray())
).ToArray()
));
考虑stringTransition没有定义我怀疑它不工作 – Paparazzi