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, IList<String> valuesToCheck)
{
if (valuesToCheck == null || inputStr.Length < index)
return false;
return valuesToCheck.Any(s => s.Length + index <= inputStr.Length
&& inputStr.IndexOf(s, index) == index);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCSAgICBzdHJpbmcgdGVzdDEgPSAiYWJjZDVmIjsKICAgICAgICBzdHJpbmdbXSBzdWJzdHJpbmdzID0geyAiMSIsICIyIiwgIjMiLCAiNCIsICI1IiB9OwogICAgICAgIGJvb2wgY29udGFpbnMgPSB0ZXN0MS5FbGVtZW50QXRQb3NDb250YWlucyg0LCBzdWJzdHJpbmdzKTsKICAgICAgICAKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiezB9IGNvbnRhaW5zIG9uZSBvZiB7MX0gYXQgc3BlY2lmaWVkIGluZGV4IHsyfTogezN9IgogICAgICAgICx0ZXN0MQogICAgICAgICxzdHJpbmcuSm9pbigiLCIsc3Vic3RyaW5ncykKICAgICAgICAsNAogICAgICAgICwgY29udGFpbnMpOwoJfQoKfQpwdWJsaWMgc3RhdGljIGNsYXNzIEV4dGVuc2lvbnMKewogICAgcHVibGljIHN0YXRpYyBib29sIEVsZW1lbnRBdFBvc0NvbnRhaW5zKHRoaXMgc3RyaW5nIGlucHV0U3RyLCBpbnQgaW5kZXgsIElMaXN0PFN0cmluZz4gdmFsdWVzVG9DaGVjaykKICAgIHsKICAgICAgICBpZiAodmFsdWVzVG9DaGVjayA9PSBudWxsIHx8IGlucHV0U3RyLkxlbmd0aCA8IGluZGV4KQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIHJldHVybiB2YWx1ZXNUb0NoZWNrLkFueShzID0+IHMuTGVuZ3RoICsgaW5kZXggPD0gaW5wdXRTdHIuTGVuZ3RoIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAgIGlucHV0U3RyLkluZGV4T2YocywgaW5kZXgpID09IGluZGV4KTsKICAgIH0KfQ==