У меня есть список идентификаторов людей и их имени, а также список идентификаторов людей и их фамилий. У некоторых людей нет имени, а у некоторых нет фамилии; Я хотел бы выполнить полное внешнее соединение двух списков.
Итак, следующие списки:
ID FirstName
-- ---------
1 John
2 Sue
ID LastName
-- --------
1 Doe
3 Smith
Должны выдать:
ID FirstName LastName
-- --------- --------
1 John Doe
2 Sue
3 Smith
Я новичок в LINQ (так что простите меня, если я хромаю) и нашли довольно много решений для 'LINQ Outer Joins', которые все выглядят очень похоже, но на самом деле кажутся оставленными внешними соединениями.
Мои попытки до сих пор были примерно такими:
private void OuterJoinTest()
{
List firstNames = new List();
firstNames.Add(new FirstName { ID = 1, Name = "John" });
firstNames.Add(new FirstName { ID = 2, Name = "Sue" });
List lastNames = new List();
lastNames.Add(new LastName { ID = 1, Name = "Doe" });
lastNames.Add(new LastName { ID = 3, Name = "Smith" });
var outerJoin = from first in firstNames
join last in lastNames
on first.ID equals last.ID
into temp
from last in temp.DefaultIfEmpty()
select new
{
id = first != null ? first.ID : last.ID,
firstname = first != null ? first.Name : string.Empty,
surname = last != null ? last.Name : string.Empty
};
}
}
public class FirstName
{
public int ID;
public string Name;
}
public class LastName
{
public int ID;
public string Name;
}
Но это возвращает: Спасибо
Кто-нибудь знает эквивалент jQuery для window.document.write ('')
в javascript?
Я хотел бы найти все вызовы метода в этом файле DLL. Как я могу это сделать?
По сути, как я могу программно сделать то, что Visual Studio уже делает?
Я не хочу использовать для этого инструмент вроде .NET Reflector , но отражение это нормально и, вероятно, необходимо.