public static Hashtable ToDictionary(IEnumerable <object> items, ScriptBlock keySelector, ScriptBlock valueSelector = null, bool force = false, bool?ignoreCase = null) { var keyFunction = CreateSelector(keySelector); var valFunction = CreateSelector(valueSelector); var comparer = default(IEqualityComparer); if (ignoreCase.HasValue) { comparer = new Einstein.PowerShell.LINQ.PSObjectComparer(ignoreCase.Value); } var table = new Hashtable(comparer); foreach (var item in items) { var key = keyFunction(item); var val = valFunction(item); if (force) { table[key] = val; } else { table.Add(key, val); } } return(table); }
public static bool SequenceEquals(IEnumerable <object> items, IEnumerable <object> other, bool?ignoreCase) { var comparer = default(IEqualityComparer <object>); if (ignoreCase.HasValue) { comparer = new Einstein.PowerShell.LINQ.PSObjectComparer(ignoreCase.Value); } return(items.SequenceEqual(other, comparer)); }
public static ISet <object> ToSet(IEnumerable <object> items, ScriptBlock selector, bool?ignoreCase) { var selectorFunc = CreateSelector(selector); var comparer = default(IEqualityComparer <object>); if (ignoreCase.HasValue) { comparer = new Einstein.PowerShell.LINQ.PSObjectComparer(ignoreCase.Value); } return(new HashSet <object>(items.Select(selectorFunc), comparer)); }
public static bool SetEquals(IEnumerable <object> items, IEnumerable <object> other, bool?ignoreCase) { var comparer = default(IEqualityComparer <object>); if (ignoreCase.HasValue) { comparer = new Einstein.PowerShell.LINQ.PSObjectComparer(ignoreCase.Value); } var hashSet = new HashSet <object>(items, comparer); return(hashSet.SetEquals(other)); }