PDA

View Full Version : عملیات روی یک لیست از object



Coward
چهارشنبه 16 اردیبهشت 1388, 13:08 عصر
سلام دوستان من لیست از object ها دارم می خواهم که روی بعضی از خصوصیات آن عملیات انجام بدهم مثلا 2 تا از خصوصیات را از هم کم کنم بعد میانگین بگیرم
این کار شدنیه ؟

NewFoxStudent
چهارشنبه 16 اردیبهشت 1388, 14:18 عصر
بله شدنیه
خیلی هم ساده به نظر میرسه

Coward
چهارشنبه 16 اردیبهشت 1388, 19:50 عصر
خوب دوست عزیز مثالی چیزی :لبخند:

NewFoxStudent
چهارشنبه 16 اردیبهشت 1388, 20:21 عصر
لیست آبجکتش رو شما بگید
من مثال رو روش اجرا کنم

NewFoxStudent
چهارشنبه 16 اردیبهشت 1388, 20:29 عصر
List<Test> testlist = new List<Test>();
for (int i = 1; i <= 6; i++)
testlist.Add(new Test(i));

foreach (Test t in testlist)
{
if (t.num1 / 2 == 0)
t.num1 += t.num2;
if (t.num3 / 2 == 1)
t.num3 += t.num4;
if (t.num5 <= t.num4)
t.num6 += 10;
}
int result = 0;
foreach (Test tt in testlist)
{
result += tt.num3;
result += tt.num4;
result += tt.num5;
result += tt.num6;
result += tt.num2;
result += tt.num1;
}
int endItem = result / testlist.Count;
class Test
{
internal int num1, num2, num3;
internal int num4, num5, num6;
public Test(int n)
{
num1 = n;
num2 = n * 2;
num3 = n * 3;
num4 = n * 4;
num5 = n * 5;
num6 = n * 6;
}
}

Coward
پنج شنبه 17 اردیبهشت 1388, 10:10 صبح
ممنون از جوابتون
چون من یکم چیزی که می خواستم متفاوت بود و مربوط به گرفتن میانگین زمان بود و پیدا هم کردم اینجا قرار می دهم که دوستان هم اگر به مشکل من برخورد کردن استفاده کنند

من یک لیست از Object دارم که بوسیله Nhibernate بدست آمده و object های من 2 تا خصوصیت زمان دارن که من میانگین زمان شروع و پایان را می خواستم که با این کد رفع شد



public static string GetAvgTime(int InboxId, DateTime StartTime, DateTime EndTime)
{
//avg(result.FixTime-flt.PersianCreateTime )
Criteria criteria = new Criteria();
criteria.Query = "select flt from IFault flt join flt.ReceiversInbox inbox join flt.Results result where result.SendState != 1 AND flt.State=2 AND inbox.Id= :InboxId AND flt.CreateTime between :StartTime and :EndTime ";
criteria.Parameters.Add("InboxId", InboxId);
criteria.Parameters.Add("StartTime", StartTime);
criteria.Parameters.Add("EndTime", EndTime);
DataFacade dFacade = new DataFacade();
IList<Fault> list = dFacade.FetchListWithCondition<Fault>(criteria);
TimeSpan time = new TimeSpan((long)(list.Average<Fault>(new Func<Fault, decimal>(x => (from res in x.Results orderby res.Id descending select res).First<FaultResult>().FixTime.Ticks - x.CreateTime.Ticks))));
return time.TotalHours.ToString();
}