У меня есть пара списков List<OldData> oldItems = new List<OldData>();
и List<NewData> newItems = new List<NewData>();
. Я пытаюсь достичь этой цели, чтобы избежать возможности появления избыточных данных и проверки некоторых условий перед добавлением значений. в список.
Сначала в oldItems у меня будут храниться некоторые значения, а в списке newItems у меня будет храниться совершенно другой набор значений, но это всегда может быть случай, когда список newItems может иметь некоторые значения, которые уже существуют в списке oldItems .
Две используемые переменные - это Name
переменная и path
переменная, в которой хранится определенный путь
Итак, сначала я хочу проверить, есть ли какие-либо значения, где имя в старом Списке предметов равно имени в новом Списке предметов, если есть элемент, который я хочу проверить, совпадают ли соответствующие переменные Path соответствующих элементов,
, если он совпадает, я могу просто сохранить этот элемент в том же виде, что и в OldIte. ms ms list, если это окажется другим, я удалю это из старого списка предметов (и позже использую предмет в новом списке предметов)
Так что все вышеперечисленное в скорлупе ореха,
Я хочу проверить в старом списке элементов, где есть имя, соответствующее ему в новом списке элементов. Если есть, я хочу проверить, соответствуют ли соответствующие значения в переменной Path для двух элементов с одинаковым именем из два списка одинаковы или различны
Я сделал простое фиктивное приложение для демонстрации этого, но действительно застрял на том, как я могу реализовать логи c
любое предложение?
class Program
{
static void Main(string[] args)
{
List<OldData> oldItems = new List<OldData>();
OldData oldData1 = new OldData();
oldData1.Name = "Test01";
oldData1.OriginalPath = "D:/Temp01";
oldItems.Add(oldData1);
OldData oldData2 = new OldData();
oldData1.Name = "Test02";
oldData1.OriginalPath = "D:/Temp02";
oldItems.Add(oldData2);
List<NewData> newItems = new List<NewData>();
NewData newData1 = new NewData();
newData1.Name = "Test01";
newData1.OriginalPath = "D:/Temp01";
newItems.Add(newData1);
NewData newData2 = new NewData();
oldData1.Name = "Test05";
oldData1.OriginalPath = "D:/Temp05";
newItems.Add(newData2);
foreach (var item in oldItems)
{
//Check if there are any Names which are same from the new Item list
//If if there is such an item check if the OriginalPath variable is the same iin both
//If yes => Remove that particular item from the Old data List
//If Not => Keep that Item in the old data List
}
}
}
class OldData
{
public string Name { get; set; }
public string OriginalPath { get; set; }
}
class NewData
{
public string Name { get; set; }
public string OriginalPath { get; set; }
}
В этом случае, поскольку значение Test01 является общим для обоих списков, оно проверит, являются ли значения переменных пути, соответствующие обоим элементам, одинаковыми или нет