【问题标题】:How to filter dictionary and get the keys from the database table如何过滤字典并从数据库表中获取键
【发布时间】:2020-04-30 00:11:52
【问题描述】:

我在配置中存储了多个值,现在我想将这些值与来自数据库的值进行比较。有一种方法由字典组成,我想获取要检查的属性。哪个是帐号?

如何归档字典以获取密钥并使用它来检查值是否存在?

public FinancialDocument(FinancialDocumentMetadata metaData, Uri url)
    {
        MetaData = metaData;
        DocumentUrl = url;
    }

  **Model**
  public class FinancialDocumentMetadata
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid Id { get; set; }
        public string AccountNumber { get; set; }
        --
        --
        --
   }

这是配置值

   <add key="AccountNumbers" value="A,B,C,D,E,F"/>

从配置中获取帐户存储

      string[] accountArray = System.Configuration.ConfigurationManager.AppSettings["AccountNumbers"].Split(',').Select(s => s.Trim()).ToArray();
       List<string> accountlist = new List<string>(accountArray);

这是获取文件字典的方法。我想从 FinancialDocument 中检查一个属性(AccountNumber)以进行检查

   private void Generate(Document targetDocument, Dictionary<FinancialDocument, PdfDocument> files)
    {
            //Want to check against the accounts numbers, if exists.
            if (accountlist.Contains("files.xxx.accountnumber"))//Not sure how i can filter the AccountNumber field to check against.
            {
               --
            }

    }

【问题讨论】:

  • 不确定您到底想做什么。你可以使用 linq 看看这里stackoverflow.com/questions/2131648/…。你的问题到底出在哪里?不清楚你想用字典做什么
  • 我想要来自 AccountNumber 的支票值。配置值将有几个我想检查的帐户,AccountNumber 得到了所有值。我 accountNumber 'A' 存在,我会继续我的逻辑
  • 好的,你通过了&lt;FinancialDocument, PdfDocument&gt; -> &lt;TKey,TValue&gt; 的字典。 AccountNumber在哪个对象中,如何从FinancialDocumentFinancialDocumentMetadata?请更新您的问题并向我们提供您的模型和最终结果的完整详细信息。
  • 我猜应该是这样的 Key.MetaData.AccountNumber
  • @JuniorLinq:是的,对不起,我的答案中忘记了.MetaData,现在包括在内。

标签: c# dictionary filter


【解决方案1】:

不确定您想做什么以及最好的方法。你的问题不是很详细。如果您想将文件与 accountNumbers 列表进行比较,这可能是一个解决方案:

private void Generate(Document targetDocument, Dictionary<FinancialDocument, PdfDocument> files)
{

       foreach(var file in files)
       {
             if(accountList.Contains(file.Key.MetaData.AccountNumber))
             {
                     // your logic here
                     var pdfDocument = file.Value;
             }
       }

}

【讨论】:

    猜你喜欢
    • 2020-04-08
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    相关资源
    最近更新 更多