string st = "a~111~2222~33333~9999";
Console.WriteLine(st.IndexOf('~'));//1
Console.WriteLine(st.IndexOf('~', st.IndexOf('~') + 1));//5 第二个~位置
Console.WriteLine(st.IndexOf('~', st.IndexOf('~', st.IndexOf('~') + 1) + 1));//10 第三个~位置
Console.WriteLine(st.Substring(st.IndexOf('~') + 1, st.IndexOf('~', st.IndexOf('~') + 1) - st.IndexOf('~') - 1)); // 111
Console.WriteLine(st.Substring(st.IndexOf('~', st.IndexOf('~') + 1) + 1, st.IndexOf('~', st.IndexOf('~', st.IndexOf('~') + 1) + 1) - st.IndexOf('~', st.IndexOf('~') + 1) - 1)); // 2222
Console.WriteLine(st.Split('~')[1]);//111
Console.WriteLine(st.Split('~')[2]);//2222
两者效率对比