Слияние двух ObservableCollections

public static T Parse<T>(this NameValueCollection col, string key)
{
  return (T)Convert.ChangeType(col[key], typeof(T));
}

я не совсем уверен в полях ChangeType или не (я предполагаю, что чтение документов сказало бы мне, но я тороплюсь прямо сейчас), но по крайней мере оно избавляется от всей той проверки типа. Упаковка наверху не очень высока, тем не менее, таким образом, я не волновался бы слишком много об этом. Если бы Вы волнуетесь по поводу непротиворечивости типа выполнения, я записал бы функцию как:

public static T Parse<T>(this NameValueCollection col, string key)
{
  T value;

  try
  {
    value = (T)Convert.ChangeType(col[key], typeof(T));
  }
  catch
  {
    value = default(T);
  }

  return value;
}

Этот способ, которым не будет бомбить функция, если значение не может быть преобразовано по любой причине. Это означает, конечно, что необходимо будет проверить возвращенное значение (который необходимо было бы сделать так или иначе, так как пользователь может отредактировать querystring).

6
задан VolkerK 18 August 2009 в 13:11
поделиться

2 ответа

Я согласился с предложением volkerK, а затем перешел на:

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx Та

1
ответ дан 9 December 2019 в 20:46
поделиться

Я нашел ссылку на CompositeCollection в другой статье SO: Merged ObservableCollection

Поскольку вы хотите создать Concat / Union, похоже, это именно то, что вам нужно. Жаль, что это не строго типизировано.

5
ответ дан 9 December 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: