[英]How to increment a number in a string?
我想增加一個字符串中的數字。
我的模特:
public partial class updown
{
public int id { get; set; }
public string number { get; set; }
}
我的控制器:
[HttpPost]
public ActionResult Index(updown viewModel)
{
var lastPO = db.updowns
.OrderByDescending(o => o.number)
.Select(m => m.number)
.FirstOrDefault() ?? "00001";
item.number = lastPO++; // I get an error on this line
db.updowns.Add(item);
db.SaveChanges();
return View(viewModel);
}
錯誤:
運算符“ ++”不能應用於類型為“字符串”的操作數
預期結果:
item.number // "00002"
根據現在刪除的評論,我有:
[HttpPost]
public ActionResult Index(updown viewModel)
{
var s = db.updowns
.OrderByDescending(o => o.number)
.Select(m => m.number)
.FirstOrDefault() ?? "00001/S2";
var lastPO = Convert.ToInt32(s.Substring(s.Length - 5 - 3, s.Length - 3)); // *
item.number = "EMOC-" + (++lastPO).ToString("00000");
db.updowns.Add(item);
db.SaveChanges();
return View(viewModel);
}
預期結果:
item.number // "EMOC-00002/S2"
但是第二次運行它時,在標記為// *
的行上出現錯誤。
預期結果:
item.number // "EMOC-00002/S2"
您需要在此處+ "/S2"
:
item.number = "EMOC-" + (++lastPO).ToString("00000") + "/S2";
第二次運行先前的代碼時發生的情況是var s = "EMOC-00002"
因此s.Substring(s.Length - 5 - 3, s.Length - 3)
給出的是"OC-00"
而不是"00002"
字符串, Convert.ToInt32()
無法處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.