Как удобней организовать вызов KeyValuePair[]
Есть вот такая функция
void Func(new KeyValuePair<string, string>[] pairs);
Если ничего не менять, то вызов ее будет выглядеть вот так:
Func(new KeyValuePair<string, string>[] { new KeyValuePair<string, string>(x2,y2), new KeyValuePair<string, string>(x1,y1) });
В идеале хотелось бы чтоб вот так:
Func({x2,y2}, {x1,y1});
Идеала, я так понимаю, не достичь... что самое близкое к этому можно достичь пользуясь .Net 4.0?
Re: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Caracrist, Вы писали:
C>Идеала, я так понимаю, не достичь... что самое близкое к этому можно достичь пользуясь .Net 4.0?
Ну если попробовать вот так:
var myParams = new Dictionary<string , string >() {
{"11" , "12" },
{"21" , "22" },
{"31" , "32" },
{"41" , "42" }
};
Func(myParams.ToArray());
Re: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Caracrist, Вы писали:
C>В идеале хотелось бы чтоб вот так:
C>C>Func({x2,y2}, {x1,y1});
C>
А почему бы не использовать картежи, Tuple<T,T>?
Кодом людям нужно помогать!
Re: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Caracrist, Вы писали:
C>Если ничего не менять, то вызов ее будет выглядеть вот так:
C>Func(new KeyValuePair<string, string>[] { new KeyValuePair<string, string>(x2,y2), new KeyValuePair<string, string>(x1,y1) });
Вот это "new KeyValuePair<string, string>[]" можно сразу ужать до "new []". А к "KeyValuePair<string, string>" просто сделать синоним через using.
Re: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Caracrist, Вы писали:
C>Есть вот такая функция
C>void Func(new KeyValuePair<string, string>[] pairs);
Здесь наверное "void Func(params KeyValuePair<string, string>[] pairs);"?
Re: Как удобней организовать вызов KeyValuePair[]
C>Идеала, я так понимаю, не достичь... что самое близкое к этому можно достичь пользуясь .Net 4.0?
А компилятора шарпа какой?
Nemerle — power of metaprogramming, functional, object-oriented and imperative features in a statically-typed .NET language
Re: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Caracrist, Вы писали:
C>В идеале хотелось бы чтоб вот так:
C>C>Func({x2,y2}, {x1,y1});
C>
C>Идеала, я так понимаю, не достичь...
Nemerle:
Func(params _args : array[string * string ]) : void
{
}
Func((x2, y2), (x1, y1))
KeyValuePair заменены на кортежи
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re[2]: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, Doc, Вы писали:
Doc>Doc>var myParams = new Dictionary<string , string >() {
Doc> {"11" , "12" },
Doc> {"21" , "22" },
Doc> {"31" , "32" },
Doc> {"41" , "42" }
Doc>};
Doc>Func(myParams.ToArray());
Doc>
Ключи могут повторяться, но идею на вооружение взял.
public class KeyValueBuilder : IEnumerable<Tuple<string , string > >
{
List<Tuple<string , string >> keyValues = new List<Tuple<string , string >>();
IEnumerator<Tuple<string , string >> IEnumerable<Tuple<string , string >>.GetEnumerator()
{
return keyValues.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return keyValues.GetEnumerator();
}
public void Add(string key, string value )
{
keyValues.Add(new Tuple<string , string >(key, value ));
}
}
Func(new KeyValueBuilder() {
{"11" , "12" },
{"21" , "22" },
{"31" , "32" },
{"41" , "42" }
});
Re[2]: Как удобней организовать вызов KeyValuePair[]
Здравствуйте, hi_octane, Вы писали:
_>А компилятора шарпа какой?
Microsoft Visual C# 2010
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить