Skip to content

Instantly share code, notes, and snippets.

Avatar

Yair Halberstadt YairHalberstadt

View GitHub Profile
@YairHalberstadt
YairHalberstadt / LinqMethodsUsage.md
Created Apr 22, 2021
Frequency Of Usage of Linq Methods
View LinqMethodsUsage.md

Frequency Of Usage of Linq Methods

Frequency Of Usage of Linq Methods

Methodology

I did a case sensitive search for usages of .<MethodName>( on https://grep.app/ in C# files.

For some I removed usages that were obviously not related to Linq where the problem was obvious and common - e.g string.Join( and sb.Append(.

View StringBuilderText.cs
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Diagnostics;
using System.Text;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.Text
View NominalDeconstruction.md

Nominal Deconstruction

  • Proposed
  • Prototype: Not Started
  • Implementation: Not Started
  • Specification: Not Started

Summary

@YairHalberstadt
YairHalberstadt / ListDictionary.cs
Created Aug 26, 2020
A Dictionary backed by a list, efficient for small dictionary sizes with quick comparisons
View ListDictionary.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
public class ListDictionary<TKey, TValue> : IDictionary<TKey, TValue>
{
private readonly List<KeyValuePair<TKey, TValue>> _list;
public ListDictionary()
@YairHalberstadt
YairHalberstadt / ImmutableSetInInsertionOrder.cs
Last active Aug 19, 2020
ImmutableSet preserving insertion order
View ImmutableSetInInsertionOrder.cs
using System.Collections;
using System.Collections.Generic;
using System.Collections.Immutable;
namespace StrongInject
{
internal class ImmutableSetInInsertionOrder<T> : IImmutableSet<T>
{
private readonly ImmutableDictionary<T, int> _items;
private readonly ImmutableSortedDictionary<int, T> _insertionOrder;
View TrieBenchmark2.cs
//#define run
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
View TrieBenchmarkSequenceEqual.cs
//#define run
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
View TrieBenchmark.cs
//#define run
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
@YairHalberstadt
YairHalberstadt / AtomicReference.cs
Last active Dec 10, 2019
AtomicReference In C#
View AtomicReference.cs
using System;
public class AtomicReference<T>
{
private object _lock = new object();
private T _value;
public AtomicReference(T value) => _value = value;
public void LockedUpdate(Func<T,T> updateFunc)
{
lock(_lock)
{