c#数组
数组函数
因公司需要,从PHP转到c#,记录下工作中用到的东西
数组转为字符串
string str = string.Join(",", ArrayList);
字符串转为数组
string str = “1,2,3,4,5,6,7”;
string[] strArray = str.Split(’,’); //字符串转数组
实例化一个字符串数组
var listInsert = new List();
向数组中添加元素
// 添加默认数据列
retMate.Table.Columns.Add("totalBillAmount");
retMate.Table.Columns.Add("totalReturnOrder");
retMate.Table.Columns.Add("arrivalRate");
// 保存
retMate.Table.AcceptChanges();
// 填充默认值
foreach (DataRow item in retMate.Table.Rows)
{
// 已结账总金额
item["totalBillAmount"] = 0;
// 已退货总单数
item["totalReturnOrder"] = 0;
// 到货率
item["arrivalRate"] = 0;
}
合并数组
// 合并两个查询结果
var notExistsSettle = retSettle.Table.AsEnumerable().Where(x => retMate.Table.AsEnumerable().Any(y =>
y["hospitalId"].ToString() != x["hospitalId"].ToString() || y["his"].ToString() != x["his"].ToString()
)).Select(row => row);
// 合并两个数组
var finalRet = retMate.Table.AsEnumerable().Concat(notExistsSettle).Concat(notExistsDept);
// findIndex的应用
var notExistsDept = new List<object>();
foreach (DataRow item in finalRet1)
{
// 查找主表中不存在的元素 如果存在返回下标 不存在返回-1
var index = retDepartment.Table.AsEnumerable().ToList().FindIndex(
rows => rows["hospitalId"].ToString() != item["hospitalId"].ToString() && rows["his"].ToString() != item["his"].ToString());
if(index > -1)
{
notExistsDept.Add(item);
}
}
过滤数组中重复元素
foreach (string item in finalRet.Select(x=>x["his"].ToString()).Distinct())
{
// 添加语句
string insert = $@"
insert into table(
id,
hospital_id,
start,
end,
hin_facility_ident,
total_count,
create_date
)
values(
uuid(),
'{finalRet.Where(x=>x["his"].ToString()== item).FirstOrDefault()}',
'{reportEntity.SticStartDate.ToString("yyyy-MM-dd")}',
'{reportEntity.SticEndDate.ToString("yyyy-MM-dd")}',
'{item}',
'{finalRet.Where(x=> x["his"].ToString() == item).Sum(x => Convert.ToInt32(x["totalCount"]))}',
now()
)";
listInsert.Add(insert);
}```