Skip to content

Instantly share code, notes, and snippets.

@atifaziz
atifaziz / csharp-query-expression-pattern.md
Created Sep 10, 2018
C# Query Expression Pattern (§7.15.3, C# Language Specification, Version 3.0)
View csharp-query-expression-pattern.md

C# Query Expression Pattern

§7.15.3 The query expression pattern, C# Language Specification, Version 3.0

Copyright © Microsoft Corporation 1999-2007. All Rights Reserved.

The Query expression pattern establishes a pattern of methods that

@atifaziz
atifaziz / Box.cs
Last active Jun 27, 2018
Generic Box in C# for explicit boxing of value types
View Box.cs
#region The MIT License (MIT)
//
// Copyright (c) 2018 Atif Aziz. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
@atifaziz
atifaziz / MoreLinqAwaitCompletionDemo.linq
Created May 25, 2018
Demo of MoreLINQ's AwaitCompletion
View MoreLinqAwaitCompletionDemo.linq
<Query Kind="Expression">
<NuGetReference Prerelease="true">morelinq</NuGetReference>
<Namespace>MoreLinq</Namespace>
<Namespace>MoreLinq.Experimental</Namespace>
</Query>
Enumerable
.Range(1, 5)
.Select(x => TimeSpan.FromSeconds(x))
.RandomSubset(5)
@atifaziz
atifaziz / .gitconfig
Last active Mar 25, 2021
My Git aliases
View .gitconfig
[alias]
aliases = config --get-regexp ^alias\\.
last = log -1 HEAD
ls = log --decorate --pretty=format:%Cgreen%h%Cred%d%Creset\\ %s\\ [%an]
ll = log --pretty=fuller
st = status
diffc = diff --cached
ci = commit
cia = commit --amend
mff = merge --ff-only
View QueenSongs.linq
<Query Kind="Expression">
<NuGetReference Version="3.1.0">System.Reactive</NuGetReference>
<NuGetReference Version="1.2.0">TryParsers</NuGetReference>
<NuGetReference Version="1.0.0-alpha-20170321T1506" Prerelease="true">WebLinq</NuGetReference>
<Namespace>static WebLinq.Modules.HttpModule</Namespace>
<Namespace>System.Reactive</Namespace>
<Namespace>System.Reactive.Linq</Namespace>
<Namespace>TryParsers</Namespace>
<Namespace>WebLinq</Namespace>
<Namespace>WebLinq.Html</Namespace>
@atifaziz
atifaziz / Get-MyNuGetApiKeys.ps1
Created Feb 28, 2018
Show ApiKeys from NuGet.Config
View Get-MyNuGetApiKeys.ps1
Add-Type -AssemblyName System.Security; ([xml](type -Raw C:\Users\aziz1a\AppData\Roaming\NuGet\NuGet.Config)).configuration.apiKeys.add | Add-Member -PassThru original -Type ScriptProperty { [Text.Encoding]::UTF8.GetString([Security.Cryptography.ProtectedData]::Unprotect([Conver
t]::FromBase64String($this.value), [Text.Encoding]::UTF8.GetBytes('NuGet'), 'CurrentUser')) }
View EnumerableWrapper.g.csx
#r "System.Net.Http"
#r "System.Threading.Tasks"
#r "packages\Microsoft.CodeAnalysis.CSharp.2.3.2\lib\netstandard1.3\Microsoft.CodeAnalysis.CSharp.dll"
using System.Net.Http;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
var source = await new HttpClient().GetStringAsync("https://gist.githubusercontent.com/atifaziz/779846996638e50cbf11554c75739178/raw/8e0ef8f52c1beadd5f6a6cbb464737e2bce0f9c9/Enumerable.cs");
@atifaziz
atifaziz / Enumerable.cs
Created Sep 19, 2017
System.Linq.Enumerable meta-view
View Enumerable.cs
namespace System.Linq
{
//
// Summary:
// Provides a set of static (Shared in Visual Basic) methods for querying objects
// that implement System.Collections.Generic.IEnumerable`1.
public static class Enumerable
{
//
// Summary:
@atifaziz
atifaziz / ValueTupleEqualityComparer.g.cs
Last active Sep 12, 2017
IEqualityComparer<> implementations for value tuples with a custom comparer per element
View ValueTupleEqualityComparer.g.cs
#region The MIT License (MIT)
//
// Copyright (c) 2017 Atif Aziz. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
@atifaziz
atifaziz / dotnet-install-v1.0.0-preview2.0.1.ps1
Created Apr 26, 2017
PowerShell script to install .NET Core SDK v1.0.0-preview2.0.1
View dotnet-install-v1.0.0-preview2.0.1.ps1
curl https://raw.githubusercontent.com/dotnet/cli/v1.0.0-preview2.0.1/scripts/obtain/dotnet-install.ps1 -OutFile dotnet-install.ps1
.\dotnet-install.ps1 -InstallDir dotnet -Verbose -Version 1.0.0-preview2-003131