using System.Collections.Generic;
public static void Main()
string seats = "xxoxoxoxoxoxooxxxxox";
var results = seats.ToCharArray().GetSingles('o');
foreach(var i in results)
public static IReadOnlyList<int> GetSingles<T>(this T[] source, T search)
var results = new List<int>();
if (source[0].Equals(search))
if (source[0].Equals(search) && ! source[1].Equals(search))
if (!source[0].Equals(search) && source[1].Equals(search))
ReadOnlySpan<T> window = new ReadOnlySpan<T>(source, 0, 3);
for(; i < source.Length - 1; i++)
window = new ReadOnlySpan<T>(source, i - 1, 3);
if(!window[0].Equals(search) && window[1].Equals(search) && !window[2].Equals(search))
if(!window[1].Equals(search) && window[2].Equals(search))