C# 如何添加到基于所选模式的where条件的列表中?
可以选择3种模式,可以是FreeAccount、BasicAccount或PremiumAccount 在GetUsers方法中,我将经历一个for循环,该循环从文本文件获取列表,但我应该只能添加Account.Type与所选模式匹配的位置,该模式是字符串类型 我之所以要这样做,是因为AccountNumber和其他属性仍然会添加到列表中,这正是我试图修复的 我试图提出如图所示的linq查询,但这并没有向列表中添加任何内容。我还有BasicaCountTestRepository.cs、FreeAccountTestRepository.cs和PremiumAccountTestRepository.cs,它们有一个具有四个属性的私有静态帐户 我本来打算给它打电话,或者以某种方式将它添加到当前列表中,但这似乎超出了我现在的要求。在朝这个方向前进之前,我想先解决这个问题 FileAccountRepository.csC# 如何添加到基于所选模式的where条件的列表中?,c#,list,C#,List,可以选择3种模式,可以是FreeAccount、BasicAccount或PremiumAccount 在GetUsers方法中,我将经历一个for循环,该循环从文本文件获取列表,但我应该只能添加Account.Type与所选模式匹配的位置,该模式是字符串类型 我之所以要这样做,是因为AccountNumber和其他属性仍然会添加到列表中,这正是我试图修复的 我试图提出如图所示的linq查询,但这并没有向列表中添加任何内容。我还有BasicaCountTestRepository.cs、Free
在将数据添加到列表之前,可以过滤从文件读取的数据
var dictionaryOfModes = new Dictionary<string,string>
{
["FreeTest"] = "F",
["Premium"] = "P",
["BasicTest"] = "B"
};
var lines = File.ReadAllLines(filePath);
var listOfAccounts = new List<Account>();
foreach(var line in lines.Skip(1))
{
string[] columns = line.Split(',');
if(columns[3] == dictionaryOfModes[mode])
{
Account _account = new Account();
_account.AccountNumber = columns[0];
_account.Name = columns[1];
_account.Balance = Decimal.Parse(columns[2]);
switch (columns[3])
{
case "F":
_account.Mode = AccountType.Free;
break;
case "B":
_account.Mode = AccountType.Basic;
break;
case "P":
_account.Mode = AccountType.Premium;
break;
}
listOfAccounts.Add(_account);
}
}
AccountNumber,Name,Balance,Type
10001,Free Account,100,F
20002,Basic Account,500,B
30003,Premium Account,1000,P
var dictionaryOfModes = new Dictionary<string,string>
{
["FreeTest"] = "F",
["Premium"] = "P",
["BasicTest"] = "B"
};
var lines = File.ReadAllLines(filePath);
var listOfAccounts = new List<Account>();
foreach(var line in lines.Skip(1))
{
string[] columns = line.Split(',');
if(columns[3] == dictionaryOfModes[mode])
{
Account _account = new Account();
_account.AccountNumber = columns[0];
_account.Name = columns[1];
_account.Balance = Decimal.Parse(columns[2]);
switch (columns[3])
{
case "F":
_account.Mode = AccountType.Free;
break;
case "B":
_account.Mode = AccountType.Basic;
break;
case "P":
_account.Mode = AccountType.Premium;
break;
}
listOfAccounts.Add(_account);
}
}