Files
zy-jjdj/Tool/CommonHelper.cs
2025-07-11 14:12:47 +08:00

122 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tool
{
public class CommonHelper
{
public static bool IMEICheck(string imei)
{
int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;
int vl_Temp = 0;
for (int i = 0; i < 14; i++)
{
/*(1)将奇数位数字相加(从1开始计数)*/
if ((i % 2) == 0)
{
vl_Sum1 = vl_Sum1 + int.Parse(imei[i].ToString());
}
else
{
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
vl_Temp = (int.Parse(imei[i].ToString())) * 2;
if (vl_Temp < 10)
{
vl_Sum2 = vl_Sum2 + vl_Temp;
}
else
{
vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;
}
}
}
/*(1)+(2)*/
vl_Total = vl_Sum1 + vl_Sum2;
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
if ((vl_Total % 10) == 0)
{
if (imei[14] == '0')
{
return true;
}
}
else
{
if ((10 - (vl_Total % 10)).ToString() == imei[14].ToString())
{
return true;
}
}
return false;
}
public static string GetIMEI(string imei)
{
int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;
int vl_Temp = 0;
for (int i = 0; i < 14; i++)
{
/*(1)将奇数位数字相加(从1开始计数)*/
if ((i % 2) == 0)
{
vl_Sum1 = vl_Sum1 + int.Parse(imei[i].ToString());
}
else
{
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
vl_Temp = (int.Parse(imei[i].ToString())) * 2;
if (vl_Temp < 10)
{
vl_Sum2 = vl_Sum2 + vl_Temp;
}
else
{
vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;
}
}
}
/*(1)+(2)*/
vl_Total = vl_Sum1 + vl_Sum2;
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
if ((vl_Total % 10) == 0)
{
return imei + "0";
}
else
{
return imei + (10 - (vl_Total % 10)).ToString();
}
}
public static List<T> Clone<T>(List<T> list) where T : new()
{
List<T> items = new List<T>();
foreach (var m in list)
{
var model = new T();
var ps = model.GetType().GetProperties();
var properties = m.GetType().GetProperties();
foreach (var p in properties)
{
foreach (var pm in ps)
{
if (pm.Name == p.Name)
{
pm.SetValue(model, p.GetValue(m));
}
}
}
items.Add(model);
}
return items;
}
}
}