using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
string test1 = "abcd5f";
string[] substrings = { "1", "2", "3", "4", "5" };
bool contains = test1.ElementAtPosContains(4, substrings);
Console.WriteLine("{0} contains one of {1} at specified index {2}: {3}"
,test1
,string.Join(",",substrings)
,4
, contains);
}
}
public static class Extensions
{
public static bool ElementAtPosContains(this string inputStr, int index, string[] valuesToCheck)
{
if (valuesToCheck == null || valuesToCheck.Length == 0 || inputStr.Length < index)
return false;
return valuesToCheck.Any(sub => string.CompareOrdinal(inputStr, index, sub, 0, sub.Length) == 0);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCSAgICBzdHJpbmcgdGVzdDEgPSAiYWJjZDVmIjsKICAgICAgICBzdHJpbmdbXSBzdWJzdHJpbmdzID0geyAiMSIsICIyIiwgIjMiLCAiNCIsICI1IiB9OwogICAgICAgIGJvb2wgY29udGFpbnMgPSB0ZXN0MS5FbGVtZW50QXRQb3NDb250YWlucyg0LCBzdWJzdHJpbmdzKTsKICAgICAgICAKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiezB9IGNvbnRhaW5zIG9uZSBvZiB7MX0gYXQgc3BlY2lmaWVkIGluZGV4IHsyfTogezN9IgogICAgICAgICx0ZXN0MQogICAgICAgICxzdHJpbmcuSm9pbigiLCIsc3Vic3RyaW5ncykKICAgICAgICAsNAogICAgICAgICwgY29udGFpbnMpOwoJfQoKfQpwdWJsaWMgc3RhdGljIGNsYXNzIEV4dGVuc2lvbnMKewogICAgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBFbGVtZW50QXRQb3NDb250YWlucyh0aGlzIHN0cmluZyBpbnB1dFN0ciwgaW50IGluZGV4LCBzdHJpbmdbXSB2YWx1ZXNUb0NoZWNrKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHZhbHVlc1RvQ2hlY2sgPT0gbnVsbCB8fCB2YWx1ZXNUb0NoZWNrLkxlbmd0aCA9PSAwIHx8IGlucHV0U3RyLkxlbmd0aCA8IGluZGV4KQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAgICAgcmV0dXJuIHZhbHVlc1RvQ2hlY2suQW55KHN1YiA9PiBzdHJpbmcuQ29tcGFyZU9yZGluYWwoaW5wdXRTdHIsIGluZGV4LCBzdWIsIDAsIHN1Yi5MZW5ndGgpID09IDApOwogICAgICAgIH0KfQ==