PDA

View Full Version : جمع کردن در لیست



forogh68
چهارشنبه 18 بهمن 1396, 14:38 عصر
سلام
دوستان من میخوام بوسیله لیست بیام و تعدادی عدد بگیرم و نتایج رو جمع کنم. الان عمل جمع انجام نمیشه. چکار باید کرد؟

int sum = 0;
string aa = "yes";
while (aa == "yes")
int sum = 0;
string aa = "yes";
while (aa == "yes")
{
Console.WriteLine("gheymat machine ra vared konid? ");
int gheymat = int.Parse(Console.ReadLine());
List<int> machines2 = new List<int> (gheymat);
Console.WriteLine("edameh? ");
aa = Console.ReadLine();
for (int i = 0; i < machines2.Count; i++)
{
sum += machines2[i];
Console.WriteLine(sum);
}
}



بعد اینکه این عمل انجام شد می خوام این اتفاق روش بیفته:

string naghdi = "naghdi", online = "online", Aghsat = "Aghsat";
Console.WriteLine("\nRavesh pardakht ra entekhab namaeed: ");
Console.WriteLine("Naghdi: ");
Console.WriteLine("online: ");
Console.WriteLine("Aghsat: ");
string s = Console.ReadLine();
if (s == naghdi)
{
Console.WriteLine("naghdi");
}else if(s == online)
{
Console.WriteLine("online");
}else if(s== Aghsat)
{
Console.WriteLine("Aghsat");
}


که در جواب sum اگر فرد آنلاین رو انتخاب کرد 7 درصد تخفیف بهش بدن. یعنی یک عمل ریاضی روش انجام بشه.

محمد آشتیانی
چهارشنبه 18 بهمن 1396, 15:35 عصر
سلام
باید تعریف لیست رو بیرون از حلقه انجام بدید


var sum = 0;
var answer = "yes";
var machines = new List<int>();


while (answer == "yes")
{
Console.WriteLine("gheymat machine ra vared konid? ");
var gheymat = int.Parse(Console.ReadLine());
machines.Add(gheymat);


Console.WriteLine("edameh? ");
answer = Console.ReadLine();
}


foreach (var machine in machines)
{
sum += machine;
}


Console.WriteLine("Sum is: " + sum);






string naghdi = "naghdi", online = "online", Aghsat = "Aghsat";
Console.WriteLine("\nRavesh pardakht ra entekhab namaeed: ");
Console.WriteLine("Naghdi: ");
Console.WriteLine("online: ");
Console.WriteLine("Aghsat: ");
string s = Console.ReadLine();
if (s == naghdi)
{
Console.WriteLine("naghdi");
}
else if (s == online)
{
Console.WriteLine("online");
}
else if (s == Aghsat)
{
Console.WriteLine("Aghsat");
}


Console.ReadKey();

orf_omid0030
چهارشنبه 18 بهمن 1396, 23:36 عصر
بهتره از خاصیت ها و ویژگی های Linq استفاده بشه تا یه حلقه

var sum = machines.Sum();

به جای



foreach (var machine in machines)
{
sum += machine;
}

forogh68
پنج شنبه 19 بهمن 1396, 11:23 صبح
والا الان فقط می تونیم از لیست اسفاده کنیم و فعلا از اونها نمیشه.


یک سوال دیگه هم داشتم:


string vvv = "yes";
while (vvv == "yes")
{
Console.WriteLine("kodam option bala add shavad?");
options.Add(Console.ReadLine());
Console.WriteLine("contiu... yes: select optin /// enter: result");
vvv = Console.ReadLine();
}
for (int i = 0; i < options.Count; i++)
{
Console.WriteLine(options[i]);
}

ببخشید من می خوام این کد رو طوری تنظیم کنم که کاربر فقط بتونه 2 آپشن رو حذف کنه ...

الان این چون توی while هست تا هر تعدادی بخاد میشه حذف کنه ... ولی می خوام فقط 2 مورد رو بتونه حذف کنه این رو چطور تنظیم کنم. بعد فقط میشه از for خالی اسفاده کرد و لیست ها ... از تابع ها هم نمی تونم استفاده کنم.