小编use*_*817的帖子

根据条件和出现将集合拆分为对象

给定是以下数组(每个块[]代表一个条目):

[A=1] [A=5] [S=3] [A=7] [C=3] [T=2] [F=9] [Z=4] [N] [C=3] [E=8]
[A=7] [N] [Z=6] [Q=1] [P=2] [Y=7] [S=3] [N] 
Run Code Online (Sandbox Code Playgroud)

我需要将它分成'N'类型的对象(NObject),其中每个其他字符代表该NObject对象的特定属性,直到下一次出现'N'.直到第一次出现'N',字符属于另一个对象(让我们称之为PObject).所以任务应该完成以下任务:

  1. 将每个字符映射到PObject属性
  2. 当第一个'N'出现时,创建一个新的NObject
  3. 将每个字符映射到该NObject的属性
  4. 如果出现另一个N字符,请创建一个新的NObject

目前,在伪代码中我的解决方案看起来如下,我发现它远非理想.

PObject pobject = new PObject();
NObject nobject;

CollectionOfKeyValuePairs collection = MyArray.Split('=').MapKeysValues()

foreach(entry in collection) {
    switch(entry.Key):
        case A:
            (nobject ?? (CommonBase) pobject).A += entry.Value; break;
        case B:
            (nobject ?? (CommonBase) pobject).B += entry.Value; break;
        case C:
            (nobject ?? (CommonBase) pobject).C += entry.Value; break;
        case E:
            pobject.E += entry.Value; break;
        case F:
            (nobject ?? (CommonBase) …
Run Code Online (Sandbox Code Playgroud)

.net c# linq arrays object

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

标签 统计

.net ×1

arrays ×1

c# ×1

linq ×1

object ×1