小编end*_*ian的帖子

处理数据馈送格式

前几天我有一个有趣的采访问题,我真的很挣扎.(非常雄心勃勃的)规范要求我在C#中为两个不同的数据流编写解析器.这是第一个流的组成示例:

30=EUR/USD,35=3,50=ON,51=12.5,52=13.5,50=6M,51=15.4,52=16.2,50=1Y,51=17.2,52=18.3
Run Code Online (Sandbox Code Playgroud)

其中30是货币对,35是期限数,50,51,52是期限,买入和卖出.买入和卖出是可选的,但是正确的中标 - 买卖元组将至少具有两个价格中的一个.他们提供的框架代码暗示解析此行的结果应该是3个单独的对象(DataElement实例).我最终得到了一个相当讨厌的switch语句和基于循环的实现,我不确定它是否真的有效.

有什么技术可以读取这种流?我试图找出一些递归的东西,这是我无法做到的.

编辑:基于@ evanmcdonnall的答案(接受)这里是完全编译和工作的代码,以防它对其他人有用.

        List<DataElement> Parse(string row)
    {
        string currency=string.Empty;
        DataElement[] elements = null;
        int j = 0;
        bool start = false;
        string[] tokens = row.Split(',');
        for (int i = 0; i < tokens.Length; i++)
        {
            string[] kv = tokens[i].Split('=');

            switch (kv[0])
            {
                case "30":
                    currency = kv[1];
                    break;
                case "35":
                    elements = new DataElement[int.Parse(kv[1])];
                    break;
                case "50":
                    if (start)
                        j++;
                    elements[j] = new DataElement() { currency = currency, tenor = kv[1] };
                    start = true; …
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
1
解决办法
179
查看次数

使用自定义密钥进行Java 8分组

我有以下格式的一系列输入字符串:

typeA:code1,
typeA:code2,
typeA:code3,
typeB:code4,
typeB:code5,
typeB:code6,
typeC:code7,
...
Run Code Online (Sandbox Code Playgroud)

我需要得到一个Map<String, List<String>>具有以下结构:

typeA, [code1, code2, code3]
typeB, [code4, code5, code6]
typeC, [code7, code8, ...]
Run Code Online (Sandbox Code Playgroud)

问题是生成每个类型我需要在每个输入字符串上调用这样的函数:

public static String getType(String code)
{
  return code.split(":")[0];  // yes this is horrible code, it's just for the example, honestly
}
Run Code Online (Sandbox Code Playgroud)

我非常有信心Streams和Collectors可以做到这一点,但我正在努力获得正确的法术咒语来实现它.

java java-8 java-stream collectors

5
推荐指数
2
解决办法
6282
查看次数

有人可以给我一个如何在C#中使用System.Monitor的简单示例吗?

我发现System.Monitor非常令人困惑,虽然我理解线程,锁,死锁,竞争条件,餐饮哲学家和所有爵士乐.通常我使用ManualResetEvent()来进行线程间协调,但我知道这是一个重量级的内核对象,System.Monitor(Enter/Pulse等)效率更高.我用谷歌搜索和谷歌搜索,但找不到一个明智的例子.

如果SO工作人员可以向我解释这个可能很棒的构造,我将非常感激:-)

c# multithreading

4
推荐指数
1
解决办法
488
查看次数

我可以使用LINQ将List <MyObjectType>转换为DataSet吗?

我对C#/ .NET中的LINQ完全不熟悉.我知道我可以使用它将DataSet转换为数组/列表,我能朝相反的方向前进吗?

我正在使用NPlot生成捕获价格的图表,这些图表存储在List中,其中PriceInformation是一个包含两个公共双打和一个DateTime的类.

任何建议都非常欢迎.

c# linq

1
推荐指数
1
解决办法
7124
查看次数

针对C++和C#的代码生成工具

我有一组使用C#和C++组合构建的应用程序.我们在两种语言之间有一组共享对象,而不是在每种语言中单独定义每个语言,我宁愿使用代码生成工具.理想情况下,这样的工具将是FOSS,尽管这不是绝对的要求.尽管存在来自基类的继承,接口的实现,其他对象类型的包含以及其他对象类型的集合,但对象本身相对简单.

C++目标环境是Visual C++ 2008.

有没有人对可以处理这种任务的工具有任何建议?

示例代码:

public class Tax 
{ 
private static Dictionary<string, double> _TaxRates; 
public Dictionary<string,double> TaxRates { get { return _TaxRates; } }
}
Run Code Online (Sandbox Code Playgroud)

c# c++ code-generation

1
推荐指数
1
解决办法
2819
查看次数