我有一个列表,其中包含int类型的instanceNumber属性,如果值小于10,我想添加前导0。例如,在该10,11,12之后为01,02 ... 09,等等。我尝试了以下代码,但没有用
var sidList = _sidRepository.GetAllList().Where(q=>q.IsDeleted==false).OrderByDescending(q=>q.Id).ToList();
if (sidList.Count > 0)
{
sidList.Where(w => w.InstanceNumber<10).ToList().
ForEach(s => s.InstanceNumber = s.InstanceNumber.Value.ToString("D").Length + 2);
}
答案 0 :(得分:0)
尝试一下:
var sidList = _sidRepository.GetAllList()
.Where(q => !q.IsDeleted)
.OrderByDescending(q => q.Id)
.ToList();
if (sidList.Any())
{
sidList
.Where(w => w.InstanceNumber < 10)
.ToList()
.ForEach(s => s.InstanceNumber = s.InstanceNumber.Value.ToString("00").Length + 2);
}
我的建议:
var sidList = _sidRepository.GetAllList()
.Where(q => !q.IsDeleted)
.OrderByDescending(q => q.Id);
if (sidList.Any())
foreach (var item in sidList.Where(i => i.InstanceNumber < 10))
item.InstanceNumber = item.InstanceNumber.Value.ToString("00").Length + 2;
我的建议将返回一个IEnumerable<item>
而不是一个List<item>
,但是如果需要,您可以在以后使用一个.ToList()
来处理它,但是您会从性能中受益,因为您会避免两次ToList(ing)。