2017-04-17 12 views
-2

我已经列出一个银行账户的交易清单,该字符串被格式化:我有一个C#列表问题与搜索字符串列表中的整数值?

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

它们看起来像

Withdrawn 200 
Deposited 200 etc.. 

在列表中,我打算创建一个方法找到被定义为在100到150之间退出的可疑活动,因此我使用.Contain("withdrawn")来查找带有单词withdrawn的每个元素,但是如何找到哪些数值介于100到150之间?

它们是字符串类型,所以当它们是字符串类型时,如何执行类似If (100 > amount > 150)的操作?

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

任何帮助?

+0

给我们一些示例输入和你到目前为止尝试过的。 – DavidG

+0

我建议你使用'List >'这将更容易处理和检索信息。 – CNuts

+0

你能提供一个代码示例吗?并尝试澄清你的问题,请。 – MetaColon

回答

0

如果字符串为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; 
0

我假设有一个叫交易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; } 
} 
+0

您使用交易ID创建模型,但是您没有分割肌动蛋白和分子模型? –

+0

我已经定义了这个模型来模拟有问题的案例,我不想将** Details **字符串分成行动和金额。我只是提供**交易ID **作为交易记录的标识符,并且只在交易的** Details **上查询才能返回所需的结果。 –

相关问题