class Program
{
List listOfEmp = new List();
List listOfDepart = new List();
public Program()
{
listOfDepart = new List(){
new Department { Id = 1, DeptName = "DEV" },
new Department { Id = 2, DeptName = "QA" },
new Department { Id = 3, DeptName = "BUILD" },
new Department { Id = 4, DeptName = "SIT" }
};
listOfEmp = new List(){
new Employee { Empid = 1, Name = "Manikandan",DepartmentId=1 },
new Employee { Empid = 2, Name = "Manoj" ,DepartmentId=1},
new Employee { Empid = 3, Name = "Yokesh" ,DepartmentId=0},
new Employee { Empid = 3, Name = "Purusotham",DepartmentId=0}
};
}
static void Main(string[] args)
{
Program ob = new Program();
ob.LeftJoin();
Console.ReadLine();
}
private void LeftJoin()
{
listOfEmp.GroupJoin(listOfDepart.DefaultIfEmpty(), x => x.DepartmentId, y => y.Id, (x, y) => new { EmpId = x.Empid, EmpName = x.Name, Dpt = y.FirstOrDefault() != null ? y.FirstOrDefault().DeptName : null }).ToList().ForEach
(z =>
{
Console.WriteLine("Empid:{0} EmpName:{1} Dept:{2}", z.EmpId, z.EmpName, z.Dpt);
});
}
}
class Employee
{
public int Empid { get; set; }
public string Name { get; set; }
public int DepartmentId { get; set; }
}
class Department
{
public int Id { get; set; }
public string DeptName { get; set; }
}
Вы можете захотеть посмотреть с использованием R, чтобы создать базовую графику, а затем сохранить их в редактируемом формате (вроде SVG ). Затем используя более искусственное приложение для редактирования вашего SVG, чтобы сделать его красивым (вроде Inkscape ). Смотрите мой предыдущий вопрос для примера, используя Каир . Я также +1 Узнайте GGPlot2 из Шена.
-121--1259421- GIT Checkout
принимает - наши
или - их
вариант для таких случаев. Итак, если у вас есть конфликт слияния, и вы знаете, что вы просто хотите, чтобы файл из ветви, в которой вы объединяетесь, вы можете сделать:
$ git checkout --theirs -- path/to/conflicted-file.txt
использовать эту версию файла. Точно так же, если вы знаете, что вы хотите, чтобы ваша версия (не единственное, что объединяется), вы можете использовать
$ git checkout --ours -- path/to/conflicted-file.txt
Необходимо разрешить конфликт вручную (копирование файла) и затем фиксировать файл (неважно, если бы Вы скопировали его или использовали локальную версию) как это
git commit -a -m "Fix merge conflict in test.foo"
, Мерзавец обычно автоматически фиксирует после слияния, но когда это обнаруживает конфликты, это не может решить отдельно, это применяет все патчи, которые это выяснило и оставляет остальных для Вас, чтобы разрешить и фиксировать вручную. Страница справочника Слияния Мерзавца, Интенсивный курс Мерзавца-SVN или этот запись в блоге могла бы пролить некоторый свет на то, как это, как предполагается, работает.
Редактирование: Видят сообщение ниже, Вы не должны на самом деле копировать файлы сами, но можете использовать
git checkout --ours -- path/to/file.txt
git checkout --theirs -- path/to/file.txt
для выбора версии файла, который Вы хотите. При копировании / редактирование файла только будет необходимо, если Вы захотите соединение обеих версий.
отметьте ответ mipadis как корректный.
Я столкнулся с аналогичной проблемой (хотел вытащить фиксацию, которая включала некоторые двоичные файлы, которые вызывали конфликты при слиянии), но наткнулся на другое решение, которое можно сделать полностью с использованием git (т.е. без необходимости вручную копировать файлы). Я решил, что включу его здесь, чтобы, по крайней мере, я мог вспомнить его в следующий раз, когда он мне понадобится. :) Шаги выглядят следующим образом:
% git fetch
Это извлекает последние фиксации из удаленного репозитория (вам может потребоваться указать имя удаленной ветки, в зависимости от ваших настроек), но не пытается их объединить. Он записывает фиксацию в FETCH_HEAD
% git checkout FETCH_HEAD stuff/to/update
. Он берет копию нужных мне двоичных файлов и перезаписывает то, что находится в рабочем дереве, версией, полученной из удаленной ветви. git не пытается выполнить слияние, так что вы просто получаете точную копию двоичного файла из удаленной ветки. Как только это будет сделано, вы можете добавить / зафиксировать новую копию, как обычно.
Вы также можете решить эту проблему с помощью
git mergetool
, который заставляет git
создавать локальные копии конфликтующего двоичного файла и запускать для них ваш редактор по умолчанию:
{конфликтующий } .HEAD
{конфликтуют}
{конфликтуют} .REMOTE
Очевидно, вы не можете с пользой редактировать двоичные файлы в текстовом редакторе. Вместо этого вы копируете новый файл {конфликтующий} .REMOTE
поверх {конфликтующий}
, не закрывая редактор. Затем, когда вы закроете редактор , git
увидит, что недекорированная рабочая копия была изменена, и ваш конфликт слияния разрешен обычным способом.
Чтобы разрешить, сохраняя версию в текущей ветке (игнорируйте версию из ветви, в которой вы объединяетесь), просто добавьте и совершите файл:
git commit -a
, чтобы разрешить, перезаписав версию в текущей ветке с версией В филиалке, в которой вы объединяетесь, вам нужно сначала получить эту версию в рабочий каталог, а затем добавить / совершать его:
git checkout otherbranch theconflictedfile
git commit -a