gani7787 Ответов: 2

Как хранить несколько разделенных значений в массиве


Hi,

How to store multiple split up values in to array's or collection or some other things.

For example,

I have below table value.


Student       Marks
Student1       Sub1 = A+B,Sub2=D+E,Sub3=F+G,etc
my marks column values like "Sub1 = A+B,Sub2=D+E,Sub3=F+G,etc"

I want to split All the subjects and store corresponding subject values in arrays.

my out put should come as below.

<pre>for example

string[] words1 = student1.Split(',');

so i can get below like

[0]Sub1 = A+B

[1]Sub2=D+E

[2]Sub3=F+G

  for (int i = 0; i < words1.Length; i++)
            {

              string[] words2 = words1[i].Split('='); // Again splitting the values for  Sub1 = A+B

                TempSub = words2[0];  // So Sub1 will be the variables
            }


So the output array would be in the name of "Sub1","Sub2","Sub3",etc..

Sub1[0] = 90 

Sub2[1] = 80

Sub3[2] = 90

pls. let me know if you need any more assist...


Что я уже пробовал:

string[] words1 = student1.Split(',');

so i can get below like

[0]Sub1 = A+B

[1]Sub2=D+E

[2]Sub3=F+G

  for (int i = 0; i < words1.Length; i++)
            {

              string[] words2 = words1[i].Split('='); // Again splitting the values for  Sub1 = A+B

                TempSub = words2[0];  // So Sub1 will be the variables
            }

2 Ответов

Рейтинг:
1

OriginalGriff

Попробовать это:

string student1 = "Sub1 = A+B,Sub2=D+E,Sub3=F+G";
string[] subjects = student1.Split(',');
Dictionary<string, string> output = new Dictionary<string, string>();
foreach (string subject in subjects)
    {
    string[] details = subject.Split('=');
    if (details.Length == 2)
        {
        output[details[0].Trim()] = details[1].Trim();
        }
    }


gani7787

Как применять формулу.
Например, входным параметром является
А=200
B=400
С=90
D=80
Е=70
F=100
G=200
Итак, студент1, как показано ниже.
строковый оператор student1 = "Sub1 = А+Б-с,Sub2=Д+Е-А Sub3=Ф-Б+г";



Значение Sub1,Sub2,Sub3 и т. д. В будущем оно может измениться на какое-то другое имя. вот почему я хочу сохранить, как это имя левой боковой переменной.

Таким образом, конечный результат таков

String[] Subjects; / / таким образом, subjects должен быть ниже значения
Таким образом, конечный результат должен быть для испытуемых.

Sub1[0] = 510
Sub2[1] = -50
Sub3[2] = 500

OriginalGriff

Это совсем другой вопрос!
Для этого вам нужно посмотреть на подстановки параметров и оценку выражений.
Это может помочь:
https://www.codeproject.com/Articles/241830/a-Tiny-Expression-Evaluator
Или это:
https://www.codeproject.com/Articles/2160/Runtime-C-Expression-Evaluator

Рейтинг:
0

londhess

попробуйте что-нибудь вроде этого.

var s = "Sub2=A+B,Sub2=D+E,Sub3=F+G";
           var a = s.Split(',').Select(x => x.Split('=')).ToArray();

           foreach (var tmp in a)
           {
               string sub=tmp[0].ToString();
               string mark = tmp[1].ToString();
           }