Skip to content

Instantly share code, notes, and snippets.

public static bool ContainsTokenUnroll(string value, string token, char delimiter = ';')
{
if (string.IsNullOrEmpty(token)) return false;
if (string.IsNullOrEmpty(value)) return false;
var valueLength = value.Length;
var tokenLength = token.Length;
if (tokenLength > valueLength) return false;
@benaadams
benaadams / FastIntegerToIPAddress.cs
Last active June 9, 2016 10:01
Fast unit ipaddress to string
public unsafe static string FastIntegerToIPAddress(uint input)
{
var input0 = (input & 0xff000000) >> 24;
var input1 = (input & 0xff0000) >> 16;
var input2 = (input & 0xff00) >> 8;
var input3 = (input & 0xff);
var length0 = input0 > 99 ? 3 : input0 > 9 ? 2 : 1;
var length1 = input1 > 99 ? 3 : input1 > 9 ? 2 : 1;
var length2 = input2 > 99 ? 3 : input2 > 9 ? 2 : 1;
@aL3891
aL3891 / dateformatbenchmark.cs
Last active October 6, 2016 08:48
dateformat
using System;
using static System.Text.Encoding;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Diagnostics.Windows;
using BenchmarkDotNet.Running;
using Xunit;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@xoofx
xoofx / EvilArray.cs
Created June 1, 2016 21:56
Cast an array of blittable structs to an array of byte[], transform length as well
using System;
using System.Runtime.InteropServices;
namespace EvilArray
{
/// <summary>
/// Cast an array of structs to an array of byte[]
/// </summary>
class Program
{
@bretcope
bretcope / 1 - Map Arguments to Properties.cs
Last active March 12, 2019 05:33
Sigil Object Mapping - Basic Examples
// Runnable from Linqpad 5
// Must install the Sigil nuget package and include the Sigil namespace
void Main()
{
var createSample = GetMapperDelegate();
// try it out
createSample(23, "Hello").Dump();
}
using Microsoft.Diagnostics.Tracing;
using Microsoft.Diagnostics.Tracing.Parsers;
using Microsoft.Diagnostics.Tracing.Parsers.Clr;
using Microsoft.Diagnostics.Tracing.Session;
using System;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ReubenBond
ReubenBond / ILFieldBuilder.cs
Created October 12, 2016 01:58
Generating static fields on the fly in C# (for use in other codegen)
using System;
using System.Collections.Concurrent;
using System.Reflection;
using System.Reflection.Emit;
internal class ILFieldBuilder
{
private static readonly AssemblyBuilder AssemblyBuilder =
AssemblyBuilder.DefineDynamicAssembly(
new AssemblyName(nameof(ILFieldBuilder)),
@ReubenBond
ReubenBond / veh_hook.cpp
Created December 19, 2017 22:58
INT3 Vectored Exception Handler hooking
/**
veh_hook Vectored Exception Handler hooking library
Version: 24-March-2008
**/
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#include <windows.h>
#include "veh_hook.h"
static veh_list_t* list = NULL;
@xoofx
xoofx / GetGenericTypeInstances.cs
Last active June 29, 2021 10:05
Gets the list of the generic type instances used in an assembly
public static class AssemblyHelper
{
/// <summary>
/// Gets the list of concrete generic type instances used in an assembly.
/// See remarks
/// </summary>
/// <param name="assembly">The assembly</param>
/// <returns>The list of generic type instances</returns>
/// <remarks>
/// Note that this method is fetching only direct type instances (through type, method argument or fields)
@thomaslevesque
thomaslevesque / memset.cs
Last active July 6, 2021 01:48
Benchmark of memset implementations in C# using a loop or the initblk CLR instruction (run in LinqPad)
void Main()
{
var array = new byte[10000000];
var initBlk = new InitblkMemoryHelper();
var loop = new LoopMemoryHelper();
// First run for JIT warmup and type initialization
initBlk.Memset(array, 0, array.Length, 42);
loop.Memset(array, 0, array.Length, 42);