Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何添加到基于所选模式的where条件的列表中?_C#_List - Fatal编程技术网

C# 如何添加到基于所选模式的where条件的列表中?

C# 如何添加到基于所选模式的where条件的列表中?,c#,list,C#,List,可以选择3种模式,可以是FreeAccount、BasicAccount或PremiumAccount 在GetUsers方法中,我将经历一个for循环,该循环从文本文件获取列表,但我应该只能添加Account.Type与所选模式匹配的位置,该模式是字符串类型 我之所以要这样做,是因为AccountNumber和其他属性仍然会添加到列表中,这正是我试图修复的 我试图提出如图所示的linq查询,但这并没有向列表中添加任何内容。我还有BasicaCountTestRepository.cs、Free

可以选择3种模式,可以是FreeAccount、BasicAccount或PremiumAccount

在GetUsers方法中,我将经历一个for循环,该循环从文本文件获取列表,但我应该只能添加Account.Type与所选模式匹配的位置,该模式是字符串类型

我之所以要这样做,是因为AccountNumber和其他属性仍然会添加到列表中,这正是我试图修复的

我试图提出如图所示的linq查询,但这并没有向列表中添加任何内容。我还有BasicaCountTestRepository.cs、FreeAccountTestRepository.cs和PremiumAccountTestRepository.cs,它们有一个具有四个属性的私有静态帐户

我本来打算给它打电话,或者以某种方式将它添加到当前列表中,但这似乎超出了我现在的要求。在朝这个方向前进之前,我想先解决这个问题

FileAccountRepository.cs


在将数据添加到列表之前,可以过滤从文件读取的数据

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);
    }
}