GetNewID

本文介绍了一个使用C#编写的自定义方法,该方法可以为数据视图中的每一项生成一个唯一的ID。通过清除筛选器并针对当前行进行操作,此方法能够根据已有的ID序列自动创建新的ID,适用于需要连续编号的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 using System.Data;
using System.Linq;

#region
public string GetNewID(this DataView dataView, string letters)
{
    dataView.RowFilter = null; // 清除该筛选器。
    dataView.RowStateFilter = DataViewRowState.CurrentRows;
    var query = from item in dataView.Cast<DataRowView>()
                let ID = item.Row.Field<string>(0).Substring(letters.Length)
                select ID;
    int id = query.Any() ? int.Parse(query.Max()) + 1 : 1;
    return string.Format("{0}{1:D3}", letters, id); // D3 <=> 000
}
#endregion

private static void handImportDataValidationLits(List<XSSFDataValidation> dataValidations, XSSFSheet xssfSheet, Map<Object, String> cellDataMap, List<DataVerification> dataVerificationList, List<DataVerificationRule> dataVerificationRuleList) { for (XSSFDataValidation dataValidation : dataValidations) { DataValidationConstraint constraint = dataValidation.getValidationConstraint(); if (constraint instanceof XSSFDataValidationConstraint xssfDataValidationConstraint){ DataVerificationRule dataVerificationRule = getUniversalDataVerificationRule(dataValidation); String ruleId = IdUtil.getNewId(); dataVerificationRule.setId(ruleId); if (xssfDataValidationConstraint.getValidationType() == DataValidationConstraint.ValidationType.LIST){ handingImportDropdown(xssfDataValidationConstraint, dataVerificationRule, constraint); } else { String formula1 = constraint.getFormula1(); String formula2 = constraint.getFormula2(); DataVerificationRuleOpTypeEnum opTypeEnum = DataVerificationRuleOpTypeEnum.getByTableType(constraint.getOperator()); if (xssfDataValidationConstraint.getValidationType() == DataValidationConstraint.ValidationType.TEXT_LENGTH){ if (handingImportTextLen(dataVerificationRule, opTypeEnum, formula1, formula2, xssfSheet, constraint)) { continue; } } else if (xssfDataValidationConstraint.getValidationType() == DataValidationConstraint.ValidationType.DATE) { if (handingImportData(constraint, dataVerificationRule, formula1, xssfSheet, formula2)) { continue; } } else if (xssfDataValidationConstraint.getValidationType() == DataValidationConstraint.ValidationType.DECIMAL){ if (handingImportDec(dataVerificationRule, opTypeEnum, formula1, xssfSheet, formula2)) { continue; } }else if (xssfDataValidationConstraint.getValidationType() == DataValidationConstraint.ValidationType.INTEGER){ if (handingImportInt(dataVerificationRule, opTypeEnum, formula1, formula2, xssfSheet)) { continue; } } } addDvList(dataValidation, cellDataMap, ruleId, dataVerificationList); dataVerificationRuleList.add(dataVerificationRule); } } }优化代码的复杂度
最新发布
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值