public struct RegistryApp
{
public string VendorName;
public string Name;
public string Version;
}
的Structs的列表中刪除的項目,我有兩個List<RegistryApp>
持有目前安裝在Windows中所有應用程序。爲什麼兩個?那麼我有一個列表來保存所有x86
應用程序,一個用於保存所有x64
應用程序。如何從存在於其他目錄
List<RegistryApp> x64Apps64List = new List<RegistryApp>();
List<RegistryApp> x64Apps32List = new List<RegistryApp>();
一旦這兩個都填充了其從註冊表中檢索到自己合適的數據,我嘗試以下方法,以確保有沒有重複。這在List<string>
上正常工作,但不適用於List<RegistryApp>
。
List<RegistryApp> ListOfAllAppsInstalled = new List<RegistryApp>();
IEnumerable<RegistryApp> x86Apps = x64Apps32List.Except(x64Apps64List);
IEnumerable<RegistryApp> x64Apps = x64Apps64List.Except(x64Apps32List);
foreach (RegistryApp regitem in x86Apps)
{
if ((regitem.Name != null) &&
(regitem.Name.Length > 2) &&
(regitem.Name != ""))
{
ListOfAllAppsInstalled.Add(regitem);
}
}
foreach (RegistryApp regitem in x64Apps)
{
if ((regitem.Name != null) &&
(regitem.Name.Length > 2) &&
(regitem.Name != ""))
{
ListOfAllAppsInstalled.Add(regitem);
}
}
有什麼辦法可以解決這個問題嗎?
我明白了爲什麼我現在得到-1,我已經修復了措辭。 – 2013-05-05 01:28:19
這看起來像它會工作,但我無法得到它的工作,我測試了Obamas代碼,它的工作,我不得不做一些改變:'List UniqueEntries = ListOfAllAppsInstalled.Distinct()。ToList (); ' –
Dayan
2013-05-05 02:16:17