Skip to content

Commit 29f1e2d

Browse files
committed
Added WhereNot method.
1 parent 938aee8 commit 29f1e2d

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

CodeGenerator/CSharpCodeGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Text;
66
using ReClassNET.Logger;
77
using ReClassNET.Nodes;
8+
using ReClassNET.Util;
89

910
namespace ReClassNET.CodeGenerator
1011
{
@@ -84,7 +85,7 @@ private IEnumerable<MemberDefinition> YieldMemberDefinitions(IEnumerable<BaseNod
8485
Contract.Ensures(Contract.Result<IEnumerable<MemberDefinition>>() != null);
8586
Contract.Ensures(Contract.ForAll(Contract.Result<IEnumerable<MemberDefinition>>(), d => d != null));
8687

87-
foreach (var member in members.Where(n => !(n is BaseHexNode)))
88+
foreach (var member in members.WhereNot(n => n is BaseHexNode))
8889
{
8990
if (member is BitFieldNode)
9091
{

CodeGenerator/CppCodeGenerator.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Text;
66
using ReClassNET.Logger;
77
using ReClassNET.Nodes;
8+
using ReClassNET.Util;
89

910
namespace ReClassNET.CodeGenerator
1011
{
@@ -48,7 +49,7 @@ public string GenerateCode(IEnumerable<ClassNode> classes, ILogger logger)
4849
sb.AppendLine(
4950
string.Join(
5051
"\n\n",
51-
OrderByInheritance(classes.Where(c => c.Nodes.All(n => !(n is FunctionNode)))).Select(c =>
52+
OrderByInheritance(classes.Where(c => c.Nodes.None(n => n is FunctionNode))).Select(c =>
5253
{
5354
var csb = new StringBuilder();
5455
csb.Append($"class {c.Name}");
@@ -74,7 +75,7 @@ public string GenerateCode(IEnumerable<ClassNode> classes, ILogger logger)
7475
csb.AppendLine(
7576
string.Join(
7677
"\n",
77-
YieldMemberDefinitions(c.Nodes.Skip(skipFirstMember ? 1 : 0).Where(n => !(n is FunctionNode)), logger)
78+
YieldMemberDefinitions(c.Nodes.Skip(skipFirstMember ? 1 : 0).WhereNot(n => n is FunctionNode), logger)
7879
.Select(m => MemberDefinitionToString(m))
7980
.Select(s => "\t" + s)
8081
)
@@ -157,7 +158,7 @@ private IEnumerable<MemberDefinition> YieldMemberDefinitions(IEnumerable<BaseNod
157158
int fill = 0;
158159
int fillStart = 0;
159160

160-
foreach (var member in members.Where(m => !(m is VTableNode)))
161+
foreach (var member in members.WhereNot(m => m is VTableNode))
161162
{
162163
if (member is BaseHexNode)
163164
{

UI/MemoryViewControl.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
582582
// If no node is selected, try to select the first one.
583583
var selection = hotSpots
584584
.Where(h => h.Type == HotSpotType.Select)
585-
.Where(h => !(h.Node is ClassNode))
585+
.WhereNot(h => h.Node is ClassNode)
586586
.FirstOrDefault();
587587
if (selection != null)
588588
{
@@ -861,7 +861,7 @@ public void ReplaceSelectedNodesWithType(Type type)
861861
var newSelected = new List<HotSpot>(selectedNodes.Count);
862862

863863
// Group the selected nodes in continues selected blocks.
864-
foreach (var selectedPartition in PartitionSelectedNodes(selectedNodes.Where(s => !(s.Node is ClassNode))))
864+
foreach (var selectedPartition in PartitionSelectedNodes(selectedNodes.WhereNot(s => s.Node is ClassNode)))
865865
{
866866
foreach (var selected in selectedPartition)
867867
{
@@ -928,7 +928,7 @@ private void ClearSelection()
928928

929929
private void RemoveSelectedNodes()
930930
{
931-
selectedNodes.Where(h => !(h.Node is ClassNode)).ForEach(h => h.Node.ParentNode.RemoveNode(h.Node));
931+
selectedNodes.WhereNot(h => h.Node is ClassNode).ForEach(h => h.Node.ParentNode.RemoveNode(h.Node));
932932

933933
selectedNodes.Clear();
934934

Util/Extensions.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,24 @@ public static T BinaryFind<T>(this IList<T> tf, Func<T, int> comparer)
311311

312312
#region Linq
313313

314+
[DebuggerStepThrough]
315+
public static bool None<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
316+
{
317+
Contract.Requires(source != null);
318+
Contract.Requires(predicate != null);
319+
320+
return !source.Any(predicate);
321+
}
322+
323+
[DebuggerStepThrough]
324+
public static IEnumerable<TSource> WhereNot<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
325+
{
326+
Contract.Requires(source != null);
327+
Contract.Requires(predicate != null);
328+
329+
return source.Where(item => predicate(item) == false);
330+
}
331+
314332
[DebuggerStepThrough]
315333
public static int FindIndex<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
316334
{

0 commit comments

Comments
 (0)