Как удобней организовать вызов KeyValuePair[]
От: Caracrist https://1pwd.org/
Дата: 31.08.15 08:18
Оценка:
Есть вот такая функция
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?
~~~~~
~lol~~
~~~ Single Password Solution
Re: Как удобней организовать вызов KeyValuePair[]
От: Doc Россия http://andrey.moveax.ru
Дата: 31.08.15 10:04
Оценка: 12 (2) +1
Здравствуйте, Caracrist, Вы писали:

C>Идеала, я так понимаю, не достичь... что самое близкое к этому можно достичь пользуясь .Net 4.0?


Ну если попробовать вот так:

var myParams = new Dictionary<string, string>() {
    {"11", "12"},
    {"21", "22"},
    {"31", "32"},
    {"41", "42"}
};

Func(myParams.ToArray());
Re: Как удобней организовать вызов KeyValuePair[]
От: Sharov Россия  
Дата: 31.08.15 10:50
Оценка: 8 (1)
Здравствуйте, Caracrist, Вы писали:


C>В идеале хотелось бы чтоб вот так:

C>
C>Func({x2,y2}, {x1,y1});
C>


А почему бы не использовать картежи, Tuple<T,T>?
Кодом людям нужно помогать!
Re: Как удобней организовать вызов KeyValuePair[]
От: Kolesiki  
Дата: 31.08.15 14:16
Оценка: 4 (1) +1
Здравствуйте, 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[]
От: Kolesiki  
Дата: 31.08.15 14:18
Оценка: +2
Здравствуйте, Caracrist, Вы писали:

C>Есть вот такая функция

C>void Func(new KeyValuePair<string, string>[] pairs);

Здесь наверное "void Func(params KeyValuePair<string, string>[] pairs);"?
Re: Как удобней организовать вызов KeyValuePair[]
От: hi_octane Беларусь  
Дата: 31.08.15 20:51
Оценка:
C>Идеала, я так понимаю, не достичь... что самое близкое к этому можно достичь пользуясь .Net 4.0?
А компилятора шарпа какой?
Nemerle — power of metaprogramming, functional, object-oriented and imperative features in a statically-typed .NET language
Re: Как удобней организовать вызов KeyValuePair[]
От: DarthSidius  
Дата: 31.08.15 20:52
Оценка:
Здравствуйте, 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[]
От: Caracrist https://1pwd.org/
Дата: 01.09.15 16:47
Оценка: 5 (1) +1
Здравствуйте, 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"}
            });
~~~~~
~lol~~
~~~ Single Password Solution
Re[2]: Как удобней организовать вызов KeyValuePair[]
От: Caracrist https://1pwd.org/
Дата: 01.09.15 16:50
Оценка:
Здравствуйте, hi_octane, Вы писали:

_>А компилятора шарпа какой?


Microsoft Visual C# 2010
~~~~~
~lol~~
~~~ Single Password Solution
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.