mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
HashSet is easier than Distinct
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
#if NET40_OR_GREATER || NETCOREAPP
|
#if NET40_OR_GREATER || NETCOREAPP
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
#endif
|
#endif
|
||||||
@@ -150,12 +149,11 @@ namespace SabreTools.DatFiles
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Get the combined list of fields to remove
|
// Get the combined list of fields to remove
|
||||||
var fieldNames = new List<string>();
|
var fieldNames = new HashSet<string>();
|
||||||
if (itemFieldNames.ContainsKey(itemType))
|
if (itemFieldNames.ContainsKey(itemType))
|
||||||
fieldNames.AddRange(itemFieldNames[itemType]);
|
fieldNames.IntersectWith(itemFieldNames[itemType]);
|
||||||
if (itemFieldNames.ContainsKey("item"))
|
if (itemFieldNames.ContainsKey("item"))
|
||||||
fieldNames.AddRange(itemFieldNames["item"]);
|
fieldNames.IntersectWith(itemFieldNames["item"]);
|
||||||
fieldNames = fieldNames.Distinct().ToList();
|
|
||||||
|
|
||||||
// If the field specifically contains Name, set it separately
|
// If the field specifically contains Name, set it separately
|
||||||
if (fieldNames.Contains(Models.Metadata.Rom.NameKey))
|
if (fieldNames.Contains(Models.Metadata.Rom.NameKey))
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using SabreTools.Core.Tools;
|
using SabreTools.Core.Tools;
|
||||||
using SabreTools.DatItems;
|
using SabreTools.DatItems;
|
||||||
using SabreTools.DatItems.Formats;
|
using SabreTools.DatItems.Formats;
|
||||||
@@ -63,12 +62,11 @@ namespace SabreTools.DatTools
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Get the combined list of fields to remove
|
// Get the combined list of fields to remove
|
||||||
var fieldNames = new List<string>();
|
var fieldNames = new HashSet<string>();
|
||||||
if (itemFieldNames.ContainsKey(itemType))
|
if (itemFieldNames.ContainsKey(itemType))
|
||||||
fieldNames.AddRange(itemFieldNames[itemType]);
|
fieldNames.IntersectWith(itemFieldNames[itemType]);
|
||||||
if (itemFieldNames.ContainsKey("item"))
|
if (itemFieldNames.ContainsKey("item"))
|
||||||
fieldNames.AddRange(itemFieldNames["item"]);
|
fieldNames.IntersectWith(itemFieldNames["item"]);
|
||||||
fieldNames = fieldNames.Distinct().ToList();
|
|
||||||
|
|
||||||
// If the field specifically contains Name, set it separately
|
// If the field specifically contains Name, set it separately
|
||||||
if (fieldNames.Contains(Models.Metadata.Rom.NameKey))
|
if (fieldNames.Contains(Models.Metadata.Rom.NameKey))
|
||||||
@@ -88,9 +86,9 @@ namespace SabreTools.DatTools
|
|||||||
// Handle special cases
|
// Handle special cases
|
||||||
switch (datItem, repDatItem)
|
switch (datItem, repDatItem)
|
||||||
{
|
{
|
||||||
case (Disk disk, Disk repDisk): ReplaceFields(disk, repDisk, fieldNames); break;
|
case (Disk disk, Disk repDisk): ReplaceFields(disk, repDisk, [.. fieldNames]); break;
|
||||||
case (Media media, Media repMedia): ReplaceFields(media, repMedia, fieldNames); break;
|
case (Media media, Media repMedia): ReplaceFields(media, repMedia, [.. fieldNames]); break;
|
||||||
case (Rom rom, Rom repRom): ReplaceFields(rom, repRom, fieldNames); break;
|
case (Rom rom, Rom repRom): ReplaceFields(rom, repRom, [.. fieldNames]); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
Reference in New Issue
Block a user