0

我需要传递 html 属性。

可以像这样打包成一个表达式代码吗?

var tempDictionary = new Dictionary<string, object> { 
   { "class", "ui-btn-test" }, 
   { "data-icon", "gear" } 
}.Add("class", "selected");

或者

new Dictionary<string, object> ().Add("class", "selected").Add("diabled", "diabled");

?

4

1 回答 1

1

您所指的内容称为方法链接。AppendStringBuilder 的方法就是一个很好的例子。

StringBuilder b = new StringBuilder();
b.Append("test").Append("test");

这是可能的,因为 Append 方法返回一个StringBuilder对象

public unsafe StringBuilder Append(string value)

但是,在您的情况下, Add 方法Dictionary<TKey, TValue>被标记为 void

public void Add(TKey key, TValue value)

因此,不支持方法链接。但是,如果你真的想在添加新项目时使用方法链,你总是可以自己动手:

public static Dictionary<TKey, TValue> AddChain<TKey, TValue>(this Dictionary<TKey, TValue> d, TKey key, TValue value)
{
  d.Add(key, value);
  return d;
}

然后你可以编写以下代码:

Dictionary<string, string> dict = new Dictionary<string, string>()
  .AddChain("test1", "test1")
  .AddChain("test2", "test2");
于 2012-10-29T11:59:00.767 回答