我有一个字符串,我需要与另一个字符串数组匹配。如果我发现两个数组值都匹配,那么我必须从字符串中拆分出数值,然后用该数值加1,然后用新值附加实际字符串。我尝试了一些拆分和连接。但是我没有找到解决问题的正确有效的方法。下面是我的场景。
实际字符串:
BK-TS00023,X1-TS00000101,X4-A10000024,Y1-3,
比较字符串
BK Books // Compare first two characters => BK Books matches with BK-TS00023
X1 Serials // Compare first two characters => X1 Serials matches with X1-TS00000101
因此,当我发现与这些字符串匹配时,我需要获取00023、00000101之类的数值并将值增加 1。然后附加默认字符串。结果字符串将是这样的。
结果字符串
'BK-TS00024',
'X1-TS00000102',
'X4-A10000025',
'Y1-4'
我尝试了以下方式。请任何人帮助我提供执行此方案的正确方法。
代码
InfoType="BK Books"; // or "X1 Serials" // or etc ..
var splitInfo = InfoType.Split(' ');
var SiteFileInfo = Db.SiteFiles.Where(asd => asd.Code == "AutoBarcode").Select(asd => asd.Line1).FirstOrDefault();
var splitSiteFile = SiteFileInfo.Split(',');
int cnt = 0;
foreach (var s in splitSiteFile)
{
cnt += 1;
if (s.Contains(splitInfo[0]))
{
//var infoSiteSplit = s.Split('-');
var olyNumber = Regex.Split(s, @"(?<=\p{L})(?=\p{N})");
int i = 0;
string Truncstring = "";
foreach (var a in olyNumber)
{
bool result = int.TryParse(a, out i);
if (result)
{
i += 1;
int befconv = Convert.ToInt32(a);
Truncstring = s.Replace(befconv.ToString(), i.ToString());
}
}
splitSiteFile[cnt - 1] = Truncstring;
string JoinString = string.Join(",", splitSiteFile);
Db.ExecuteStoreCommand("update SiteFile set Line1={0} where Code={1}", JoinString, "AutoBarcode");
Db.SaveChanges();
return Truncstring;
}
}