Skip to content

Instantly share code, notes, and snippets.

IEnumerable<string> GetAlternateSpellings(string baseName)
{
if (string.IsNullOrWhiteSpace(baseName))
yield break;
yield return baseName;
if (baseName.Contains("_"))
{
yield return Regex.Replace(baseName, @"(_)([a-z])", m => m.Groups.Cast<Group>().Last().Value.ToUpper());
}
public static class ObservableCollectionExtensions
{
public static IDisposable SuppressCollectionEvents(this INotifyCollectionChanged collection,
bool fireEventWhenComplete = true)
{
return new CollectionEventSuppressor(collection, fireEventWhenComplete);
}
private class CollectionEventSuppressor : IDisposable
{
public static class EnumerableExtensions
{
public static string StringJoin<T>(this IEnumerable<T> source, string delimiter)
{
return string.Join(delimiter, source);
}
}
@lisardggY
lisardggY / WaitForValue.cs
Last active August 21, 2018 14:06
WaitForValue - using Rx, wait for a property on an INotifyPropertyChanged
public static async Task WaitForValue<T>(this INotifyPropertyChanged toObserve,
Expression<Func<T>> propertyExpression,
T valueToAwait,
IEqualityComparer<T> comparer = null)
{
comparer = comparer ?? EqualityComparer<T>.Default;
var getValue = propertyExpression.Compile();
if (comparer.Equals(getValue(), valueToAwait))
return;