C# 使用c将用户与角色匹配#
我对此有点小问题 我有一个csv文件,第一列是用户,第二列是用户权限 以下是该文件的示例:C# 使用c将用户与角色匹配#,c#,csv,C#,Csv,我对此有点小问题 我有一个csv文件,第一列是用户,第二列是用户权限 以下是该文件的示例: USER, ENTITLEMENTS ACC_EXTRACT, SBL/All Ins Apps ACC_EXTRACT, SBL/PRC ACC_RECON, SBL/AccountingAdmin ACC_RECON, SBL/All Ins Apps 我想做的是检查哪些用户有特定的 我可以分配角色的权利。 例如,用户ACC_EXTRACT有两个权限:SBL/A
USER, ENTITLEMENTS
ACC_EXTRACT, SBL/All Ins Apps
ACC_EXTRACT, SBL/PRC
ACC_RECON, SBL/AccountingAdmin
ACC_RECON, SBL/All Ins Apps
我想做的是检查哪些用户有特定的
我可以分配角色的权利。
例如,用户ACC_EXTRACT有两个权限:SBL/All-Ins-Apps和SBL/PRC
我想给他分配角色x。我如何阅读文件并检查哪一个
实体分配给哪个用户
这是我到目前为止的代码,但我不确定它是否有效或是否有效
while ((line = sr.ReadLine()) != null)
{
users = sr.ReadLine();
string[] split = users.Split(',');
if (split[1].Contains("SBL/FO/Rpt") | split[1].Contains("SBL/Live Ins Apps") | split[1].Contains("SBL/Port_Grp") | split[1].Contains("SBL/Prices") | split[1].Contains("SBL/SalesPerson"))
{
Console.WriteLine(split[1] + " " + split[0]);
sw.WriteLine(split[0] + " , " + "Front Office - SalesPerson");
sw.Flush();
}
}
首先,您的代码至少包含两个错误: 您可以在一个循环中阅读该行两次
使用按位OR(|)运算符而不是逻辑运算符(| |) 我还将向string类添加一个扩展方法,如下所示:
public static bool ContainsAny(this string s, params string[] values)
{
return values.Any(x => x.Equals(s));
}
以这种方式简化if测试
if (split[1].ContainsAny("SBL/FO/Rpt", "SBL/Live Ins Apps","SBL/Port_Grp",
"SBL/Prices","SBL/SalesPerson"))
{
.....
}
if (split[1].ContainsAny("SBL/FO/Rpt", "SBL/Live Ins Apps","SBL/Port_Grp",
"SBL/Prices","SBL/SalesPerson"))
{
.....
}