Попробуйте это:
int i = 0;
var combine = dict1.Union(dict2)
.GroupBy(kvp => kvp.Key)
.OrderBy(kvp => kvp.Key)
.ToDictionary(kvp => kvp.Key, kvp => new Test() { Number = ++i, Name = kvp.First().Value.Name });
Это должно дать вам это:
{ "Key1", new Test { Number = 1, Name = "Name1" } },
{ "Key2", new Test { Number = 2, Name = "Name2" } },
{ "Key3", new Test { Number = 3, Name = "Name3" } }
{ "Key4", new Test { Number = 4, Name = "Name4" } }
Да:
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add ( .... );
settings.ValidationEventHandler += delegate( object sender, ValidationEventArgs e )
{
Console.WriteLine("invalid: " + e.Message);
};
XmlReader reader = XmlReader.Create (new XmlTextReader(file), settings);
Проверьте документацию MSDN на XmlValidatingReader, и Вы будете видеть в атрибут [ObsoleteAttribute] это:
"Используйте XmlReader, созданный XmlReader. Создайте () метод с помощью соответствующего XmlReaderSettings вместо этого. http://go.microsoft.com/fwlink/?linkid=14202"