ふと思いついて、
if(szX != szA){asY[nL] = szX;return asY[nL];}

if(szX != szA){asY.Erase(nL);asY.Insert(nL, szX);return asY[nL];}
としたらエラーはなくなったんだが、
これは>313、ライブラリ作者さん共に正しい動作になってるか?