【问题标题】:I have a a C# List issue to do with searching a string list for an integer value?我有一个 C# 列表问题与在字符串列表中搜索整数值有关吗?
【发布时间】:2017-04-17 21:21:19
【问题描述】:

我有一个列出银行账户交易的列表,字符串格式为:

("Withdrawn" + amount)
("Deposited" + amount)

它们看起来像

Withdrawn 200
Deposited 200 etc..

在列表中,我打算创建一个方法来查找定义为在 100 到 150 之间撤回的可疑活动,因此我使用.Contain("withdrawn") 来查找每个带有撤回单词的元素,但是我该怎么做找出哪些数量在 100 到 150 之间?

它们是字符串类型,那么当它们是字符串类型时,我该如何处理If ( 100 > amount > 150)

我是否尝试修剪字符串并将数字字符串部分解析/.convertall 转换为 Int?

有什么帮助吗?

【问题讨论】:

  • 给我们一些示例输入以及您到目前为止所做的尝试。
  • 我建议你使用List<KeyValuePair<string, decimal>>,这样处理和检索信息会更简单。
  • 您能提供一个代码示例吗?请尝试澄清您的问题。
  • 听起来像一个家庭作业问题,这很好,但应该指定。听起来您的“我是否...”问题也走在了正确的轨道上 - 尝试一下,如果遇到困难,请使用您尝试过的详细信息更新此问题。

标签: c# string list string-parsing contain


【解决方案1】:

如果字符串是Withdrawn 200 则使用Replace() 方法然后点赞

string str = "Withdrawn 200";
int val = str.Contains("Withdrawn")
           ? Convert.ToInt32(str.Replace("Withdrawn","").Trim())
           : 0;

bool result = val >= 100 && val <= 150;

【讨论】:

    【解决方案2】:

    我假设有一个名为 Transaction 的模型具有 ID详细信息 属性。 然后,我应用了以下查询来获取所需的列表。

    static void Main ( string [ ] args )
    {
        List<Transaction> accounts = new List<Transaction>
        {
            new Transaction { ID = 1, Details =  "Withdrawn 100"} ,
            new Transaction { ID = 2, Details =  "Withdrawn 200"} ,
            new Transaction { ID = 3, Details =  "Deposited 100"} ,
        };
    
        var query = accounts.
                Where ( x => x.Details.Contains ( "Withdrawn" ) && Convert.ToDecimal ( x.Details.Replace ( "Withdrawn" , "" ).Trim () ) > 100 ).
                ToList ();
    
        ReadKey ();
    }
    
    public class Transaction
    {
        public int ID { get; set; }
        public string Details { get; set; }
    }
    

    【讨论】:

    • 你制作了一个带有 Transaction ID 的模型,但你没有拆分 actin 和 ammount?
    • 我定义这个模型只是为了模拟有问题的情况,我不想将 Details 字符串拆分为 action 和 amount。我只是提供Transaction ID作为交易记录的标识符,并且只查询交易的Details以返回所需的结果。
    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2021-03-02
    • 1970-01-01
    相关资源
    最近更新 更多