本文整理汇总了C#中System.Windows.Documents.List.Sum方法的典型用法代码示例。如果您正苦于以下问题:C# List.Sum方法的具体用法?C# List.Sum怎么用?C# List.Sum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Documents.List
的用法示例。
在下文中一共展示了List.Sum方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetFleetValue
//gets the total value of all aircraft in fleet combined
public static long GetFleetValue()
{
List<Int64> values = new List<Int64>();
foreach(FleetAirliner airliner in GameObject.GetInstance().HumanAirline.Fleet)
{
values.Add(airliner.Airliner.Price);
}
return values.Sum();
}
示例2: DevelopNextGeneration
//Entwickelt und kreuzt zwei Dots
public bool DevelopNextGeneration()
{
List<double> listFitnessValues = new List<double>();
double generalFitness = 0;
Random rd = new Random();
double tempRdValue = 0; //temp Random Value
double tempInkValue = 0; //temp Inkrement Value
try
{
//Puts the fitnessvalue of every dot in a list
foreach (MyDot d in myDots)
{
listFitnessValues.Add(d.Fitness);
}
//Divide all values through 0
for (int i = 0; i < listFitnessValues.Count; i++)
{
if (listFitnessValues[i] != 0)
{
listFitnessValues[i] = 1 / listFitnessValues[i];
}
}
generalFitness = listFitnessValues.Sum();
tempRdValue = rd.NextDouble() * generalFitness;
int k = 0;
while (!((tempInkValue - listFitnessValues[k] < tempRdValue) && (tempInkValue + listFitnessValues[k+1] > tempRdValue)))
{
tempInkValue += listFitnessValues[k];
}
}
catch
{
return false;
}
return true;
}
示例3: btn_simulate_Click
private void btn_simulate_Click(object sender, RoutedEventArgs e)
{
int nbrSim = Convert.ToInt32(txt_nbrsim.Text);
double initWealth = Properties.Settings.Default.InitWealth;
List<double> finalEarnings = new List<double>();
List<int> counts = new List<int>();
for (int i = 0; i < nbrSim; i++)
{
MartStrategy MStrat = new MartStrategy(5, 250, initWealth);
double bid = MStrat.Bet();
Number res;
double payoff;
int count = 0;
while (bid <= MStrat.Wealth)
{
MStrat.PlaceBet(bid);
res = _RGame.Play();
payoff = _RGame.GetPayoffColor(NumberColor.Red, bid, res);
MStrat.Setup(payoff);
bid = MStrat.Bet();
count++;
}
finalEarnings.Add(MStrat.Earnings-initWealth);
counts.Add(count);
}
txt_earnings.Text = finalEarnings.Average().ToString();
txt_plays.Text = counts.Average().ToString();
txt_maxEarnings.Text = finalEarnings.Max().ToString();
txt_maxLosses.Text = finalEarnings.Min().ToString();
txt_totEarnings.Text = finalEarnings.Where(x => x > 0).Sum().ToString();
txt_totLosses.Text = finalEarnings.Where(x => x < 0).Sum().ToString();
txt_balance.Text = finalEarnings.Sum().ToString();
}
示例4: PruneAutosavesSprtGetDeletes
private static int[] PruneAutosavesSprtGetDeletes(List<int>[] deletableSets, int numToDelete)
{
if (deletableSets.Sum(o => o.Count) == numToDelete)
{
// Everything in deletable sets needs to be deleted, so just return them all instead of taking the expense of load balancing
return deletableSets.SelectMany(o => o).ToArray();
}
List<int> retVal = new List<int>();
for (int cntr = 0; cntr < numToDelete; cntr++)
{
// Get the largest sets
int maxSize = deletableSets.Max(o => o.Count);
List<int>[] largest = deletableSets.Where(o => o.Count == maxSize).ToArray();
// Pick a random set, and a random index within that set
int setIndex = StaticRandom.Next(largest.Length);
int innerIndex = StaticRandom.Next(largest[setIndex].Count);
// Store the value pointed to
retVal.Add(largest[setIndex][innerIndex]);
// Now remove this from the set
largest[setIndex].RemoveAt(innerIndex);
}
return retVal.ToArray();
}
示例5: splitter_DragDelta
/// <summary>
/// This method is called by a splitter when it is dragged
/// </summary>
/// <param name="splitter">Dragged splitter</param>
/// <param name="delta"></param>
void splitter_DragDelta(object sender, DragDeltaEventArgs e)
{
ResizingPanelSplitter splitter = e.Source as ResizingPanelSplitter;
int i = 0;
//Compute the list of visible children
List<FrameworkElement> visibleChildren = new List<FrameworkElement>();
for (i = 0; i < VisualChildrenCount; i++)
{
FrameworkElement child = GetVisualChild(i) as FrameworkElement;
IDockableControl dockableControl = child as IDockableControl;
if (dockableControl != null &&
!dockableControl.IsDocked)
{
if (i == VisualChildrenCount - 1 &&
i > 0)
{
//remove the last splitter added
if (visibleChildren.Count > 0 &&
visibleChildren.Last<FrameworkElement>() is ResizingPanelSplitter)
visibleChildren.RemoveAt(visibleChildren.Count - 1);
}
else if (i < VisualChildrenCount - 1)
{
//discard the next splitter
i++;
}
continue;
}
visibleChildren.Add(child);
}
if (visibleChildren.Count == 0)
return;
if (visibleChildren.Last<FrameworkElement>() is ResizingPanelSplitter)
visibleChildren.RemoveAt(visibleChildren.Count - 1);
Size[] currentSizes = new Size[visibleChildren.Count];
double delta = Orientation == Orientation.Horizontal ? e.HorizontalChange : e.VerticalChange;
if (_childrenFinalSizes == null)
return;
_childrenFinalSizes.CopyTo(currentSizes, 0);
int iSplitter = visibleChildren.IndexOf(splitter);
Debug.Assert(iSplitter > -1);
List<FrameworkElement> prevChildren = new List<FrameworkElement>();
for (i = iSplitter - 1; i >= 0; i--)
{
FrameworkElement child = visibleChildren[i] as FrameworkElement;
if (child is ResizingPanelSplitter)
continue;
if (child.IsAbsolute() || child.IsAuto())
{
if (prevChildren.Count == 0)
{
prevChildren.Add(child);
}
break;
}
if (child.IsStar())
{
prevChildren.Add(child);
}
}
List<FrameworkElement> nextChildren = new List<FrameworkElement>();
for (i = iSplitter + 1; i < visibleChildren.Count; i++)
{
FrameworkElement child = visibleChildren[i] as FrameworkElement;
if (child is ResizingPanelSplitter)
continue;
if (child.IsAbsolute() || child.IsAuto())
{
if (nextChildren.Count == 0)
nextChildren.Add(child);
break;
}
if (child.IsStar())
{
nextChildren.Add(child);
}
}
double prevMinSize = prevChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MinWidth : c.MinHeight);
double nextMinSize = nextChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MinWidth : c.MinHeight);
//.........这里部分代码省略.........
示例6: Combine
private byte[] Combine(List< byte[] > arrays)
{
byte[] rv = new byte[arrays.Sum(a => a.Length)];
int offset = 0;
foreach (byte[] array in arrays)
{
System.Buffer.BlockCopy(array, 0, rv, offset, array.Length);
offset += array.Length;
}
return rv;
}
示例7: OnModelChanged
private void OnModelChanged()
{
DateTime startDate;
DateTime endDate;
switch (this.Model.Grouping)
{
case Grouping.Day:
startDate = this.Model.StartDate;
endDate = this.Model.EndDate;
break;
case Grouping.Week:
startDate = this.Model.StartDate.ToStartOfWeek();
endDate = this.Model.EndDate.ToEndOfWeek();
break;
case Grouping.Month:
startDate = this.Model.StartDate.ToStartOfMonth();
endDate = this.Model.EndDate.ToEndOfMonth();
break;
case Grouping.Year:
startDate = this.Model.StartDate.ToStartOfYear();
endDate = this.Model.EndDate.ToEndOfYear();
break;
default:
throw new NotImplementedException();
}
var itemsSource = new List<InvoiceByGroupData>();
var currentDate = startDate;
while (currentDate.Date <= endDate)
{
var data = new InvoiceByGroupData();
data.Start = currentDate;
switch (this.Model.Grouping)
{
case Grouping.Day:
data.Name = currentDate.Date.ToString("M/d");
data.End = currentDate.Date;
currentDate = currentDate.Date.AddDays(1);
break;
case Grouping.Week:
data.Name = currentDate.Date.ToString("M/d");
data.End = currentDate.ToEndOfWeek();
currentDate = currentDate.ToStartOfNextWeek();
break;
case Grouping.Month:
data.Name = currentDate.Date.ToString("M/yyyy");
data.End = currentDate.ToEndOfMonth();
currentDate = currentDate.ToStartOfNextMonth();
break;
case Grouping.Year:
data.Name = currentDate.Date.ToString("yyyy");
data.End = currentDate.ToEndOfYear();
currentDate = currentDate.ToStartOfNextYear();
break;
default:
break;
}
data.Amount = this.Model.FilteredInvoices
.Where(row => row.PreparedDate >= data.Start
&& row.PreparedDate <= data.End)
.Sum(row => row.Amount);
itemsSource.Add(data);
}
this.Chart.Series.Clear();
LineSeries series;
series = new LineSeries();
series.Title = "Invoices";
series.DependentValuePath = "Amount";
series.IndependentValuePath = "Name";
series.ItemsSource = itemsSource;
series.DataPointStyle = (Style)Application.Current.Resources["LineDataPointStyle"];
this.Chart.Title = string.Format("Revenues ({0:N0})", itemsSource.Sum(row => row.Amount));
this.Chart.Series.Add(series);
}
示例8: splitter_DragCompleted
//.........这里部分代码省略.........
if (child.IsAbsolute() || child.IsAuto())
{
if (prevChildren.Count == 0)
{
prevChildren.Add(child);
}
break;
}
if (child.IsStar())
{
prevChildren.Add(child);
}
}
List<FrameworkElement> nextChildren = new List<FrameworkElement>();
for (i = iSplitter + 1; i < visibleChildren.Count; i++)
{
FrameworkElement child = visibleChildren[i] as FrameworkElement;
if (child is Resizer)
continue;
if (child.IsAbsolute() || child.IsAuto())
{
if (nextChildren.Count == 0)
nextChildren.Add(child);
break;
}
if (child.IsStar())
{
nextChildren.Add(child);
}
}
double prevMinSize = prevChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MinWidth : c.MinHeight);
double nextMinSize = nextChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MinWidth : c.MinHeight);
double prevMaxSize = prevChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MaxWidth : c.MaxHeight);
double nextMaxSize = nextChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? c.MaxWidth : c.MaxHeight);
double prevSize = prevChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? currentSizes[visibleChildren.IndexOf(c)].Width : currentSizes[visibleChildren.IndexOf(c)].Height);
double nextSize = nextChildren.Sum<FrameworkElement>(c => Orientation == Orientation.Horizontal ? currentSizes[visibleChildren.IndexOf(c)].Width : currentSizes[visibleChildren.IndexOf(c)].Height);
if (prevSize + delta < prevMinSize)
delta = prevMinSize - prevSize;
if (nextSize - delta < nextMinSize)
delta = -(nextMinSize - nextSize);
double remDelta = delta * 2;
while (!HelperFunc.AreClose(delta, 0.0))
{
int prevChildrenCountWithNoMinLen =
prevChildren.Count<FrameworkElement>(c => delta > 0 ? true : (Orientation == Orientation.Horizontal ? currentSizes[visibleChildren.IndexOf(c)].Width > c.MinWidth : currentSizes[visibleChildren.IndexOf(c)].Height > c.MinHeight));
int nextChildrenCountWithNoMinLen =
nextChildren.Count<FrameworkElement>(c => delta < 0 ? true : (Orientation == Orientation.Horizontal ? currentSizes[visibleChildren.IndexOf(c)].Width > c.MinWidth : currentSizes[visibleChildren.IndexOf(c)].Height > c.MinHeight));
delta = remDelta / 2.0;
for (i = 0; i < currentSizes.Length; i++)
{
FrameworkElement child = visibleChildren[i] as FrameworkElement;
if (child is Resizer)
continue;
if (Orientation == Orientation.Horizontal)
{
if (prevChildren.Contains(child) && prevChildrenCountWithNoMinLen > 0)
示例9: srv_GameRecord_GetReportDetailCompleted
public void srv_GameRecord_GetReportDetailCompleted(object sender, GetReportDetailCompletedEventArgs e)
{
gridLoading.Visibility = Visibility.Collapsed;
currentPos = 0;
obReportDetail = e.Result.ToList();
//obReportDetail.Add(DPageSum);
//obReportDetail.Add(DTotalSum);
if (e.Result.Count != 0)
{
DTotalSum = new ReportDetail();
DTotalSum.RecordID = "总合计";
DTotalSum.IsWin = -1;
DTotalSum.Direction = -1;
DTotalSum.ResultStatus = -1;
DTotalSum.BetMoney = obReportDetail.Sum(p => p.BetMoney);
DTotalSum.WinMoney = obReportDetail.Sum(p => p.WinMoney);
if (e.Result.Count < 18)
{
obReportDetail = e.Result.ToList();
DPageSum = new ReportDetail();
DPageSum.RecordID = "本页合计";
DPageSum.IsWin = -1;
DPageSum.Direction = -1;
DPageSum.ResultStatus = -1;
DPageSum.BetMoney = obReportDetail.Take(18).Sum(p => p.BetMoney);
DPageSum.WinMoney = obReportDetail.Take(18).Sum(p => p.WinMoney);
obReportDetail.Add(DPageSum);
obReportDetail.Add(DTotalSum);
currentPos = 0;
PagedCollectionView pageView = new PagedCollectionView(obReportDetail);
pageView.PageSize = 20;
dpRecord.PageSize = 20;
dpRecord.Source = pageView;
dgRecord.ItemsSource = pageView;
}
else
{
int page = int.Parse(Math.Ceiling(double.Parse(e.Result.Count.ToString()) / 18).ToString());
for (int i = 0; i < page; i++)
{
int stayNum = obReportDetail.Count - (i * 20);
if (stayNum > 18)
{
DPageSum = new ReportDetail();
DPageSum.RecordID = "本页合计";
DPageSum.IsWin = -1;
DPageSum.Direction = -1;
DPageSum.ResultStatus = -1;
//DPageSum.BetMoney = obReportDetail.Skip(i * 20).Take(18).Sum(p => p.BetMoney);
//DPageSum.WinMoney = obReportDetail.Skip(i * 20).Take(18).Sum(p => p.WinMoney);
DPageSum.BetMoney = obReportDetail.GetRange(i * 20, 18).Sum(p => p.BetMoney);
DPageSum.WinMoney = obReportDetail.GetRange(i * 20, 18).Sum(p => p.WinMoney);
obReportDetail.Insert(i * 20 + 18, DPageSum);
obReportDetail.Insert(i * 20 + 19, DTotalSum);
}
else
{
DPageSum = new ReportDetail();
DPageSum.RecordID = "本页合计";
DPageSum.IsWin = -1;
DPageSum.Direction = -1;
DPageSum.ResultStatus = -1;
//DPageSum.BetMoney = obReportDetail.Skip(i * 20).Take(stayNum).Sum(p => p.BetMoney);
//DPageSum.WinMoney = obReportDetail.Skip(i * 20).Take(stayNum).Sum(p => p.WinMoney);
DPageSum.BetMoney = obReportDetail.GetRange(i * 20, stayNum).Sum(p => p.BetMoney);
DPageSum.WinMoney = obReportDetail.GetRange(i * 20, stayNum).Sum(p => p.WinMoney);
obReportDetail.Insert(i * 20 + stayNum, DPageSum);
obReportDetail.Insert(i * 20 + stayNum + 1, DTotalSum);
}
}
currentPos = 0;
PagedCollectionView pageView = new PagedCollectionView(obReportDetail);
pageView.PageSize = 20;
dpRecord.PageSize = 20;
dpRecord.Source = pageView;
dgRecord.ItemsSource = pageView;
}
}
else
{
PagedCollectionView pageView = new PagedCollectionView(obReportDetail);
pageView.PageSize = 20;
dpRecord.PageSize = 20;
dpRecord.Source = pageView;
dgRecord.ItemsSource = pageView;
}
BindStatReportList(user.ID);
}
示例10: btnSellAircraft_Click
private void btnSellAircraft_Click(object sender, RoutedEventArgs e)
{
TrainingAircraft aircraft = (TrainingAircraft)((Button)sender).Tag;
var aircrafts = new List<TrainingAircraft>(this.FlightSchool.Aircrafts);
aircrafts.Remove(aircraft);
Dictionary<TrainingAircraftType,int> types = this.FlightSchool.Aircrafts.GroupBy(a=>a.Type).
Select(group =>
new
{
Type = group.Key,
Count = group.Sum(g=>g.Type.MaxNumberOfStudents)
}).ToDictionary(g => g.Type, g => g.Count); ;
foreach (PilotStudent student in this.FlightSchool.Students)
{
var firstAircraft = student.Rating.Aircrafts.OrderBy(a=>a.TypeLevel).First(a=>types.ContainsKey(a) && types[a] > 0);
if (types.ContainsKey(firstAircraft))
types[firstAircraft]--;
}
Boolean canSellAircraft = aircrafts.Sum(a => a.Type.MaxNumberOfStudents) >= this.FlightSchool.Students.Count && types[aircraft.Type]>1;
if (canSellAircraft)
{
WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2809"), Translator.GetInstance().GetString("MessageBox", "2809", "message"), WPFMessageBoxButtons.YesNo);
if (result == WPFMessageBoxResult.Yes)
{
this.FlightSchool.removeTrainingAircraft(aircraft);
double price = aircraft.Type.Price * 0.75;
AirlineHelpers.AddAirlineInvoice(GameObject.GetInstance().HumanAirline,GameObject.GetInstance().GameTime, Invoice.InvoiceType.Airline_Expenses, price);
}
}
else
WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2810"), Translator.GetInstance().GetString("MessageBox", "2810", "message"), WPFMessageBoxButtons.Ok);
}
示例11: btnSellAircraft_Click
private void btnSellAircraft_Click(object sender, RoutedEventArgs e)
{
TrainingAircraft aircraft = (TrainingAircraft)((Button)sender).Tag;
var aircrafts = new List<TrainingAircraft>(this.FlightSchool.Aircrafts);
aircrafts.Remove(aircraft);
Boolean canSellAircraft = aircrafts.Sum(a => a.Type.MaxNumberOfStudents) >= this.FlightSchool.Students.Count;
if (canSellAircraft)
{
WPFMessageBoxResult result = WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2809"), Translator.GetInstance().GetString("MessageBox", "2809", "message"), WPFMessageBoxButtons.YesNo);
if (result == WPFMessageBoxResult.Yes)
this.FlightSchool.removeTrainingAircraft(aircraft);
}
else
WPFMessageBox.Show(Translator.GetInstance().GetString("MessageBox", "2810"), Translator.GetInstance().GetString("MessageBox", "2810", "message"), WPFMessageBoxButtons.Ok);
}
示例12: btn_eval_click
private void btn_eval_click(object sender, RoutedEventArgs e)
{
var reader = new StreamReader(new FileStream(outputFile, FileMode.Open));
var calculatedSequence = new List<string>();
var calculatedLatency = new List<KeyValuePair<string,int>>();
float countAll = 0;
float countHit = 0;
int latency = 0;
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
if (line.Contains("==="))
{
calculatedSequence.Clear();
latency = 0;
}
if (line.Contains("%"))
{
int sequenceHit = 0;
countAll++;
calculatedSequence.Add(line.Split('%')[0].Trim());
var originalLabel = line.Split('%')[1].Substring(1).Trim();
foreach (string lbl in calculatedSequence)
{
if (!lbl.Equals(originalLabel) && sequenceHit == 0)
latency++;
else
sequenceHit++;
}
// EVALUATION: berechnete Werte entsprechen zu einem drittel des erwarteten Labels und das ziellabel ist mindestens einmal in den letzten 5 Frames enthalten
//var hit = sequenceHit >= calculatedSequence.Count*0.33 && calculatedSequence.GetRange(calculatedSequence.Count-6,5).Contains(originalLabel);
var hit = originalLabel == calculatedSequence.Last();
if (hit)
countHit++;
else
latency = -1;
calculatedLatency.Add(new KeyValuePair<string,int>(originalLabel,latency));
}
else
{
if (!String.IsNullOrWhiteSpace(line))
calculatedSequence.Add(line.Trim());
}
}
reader.Close();
float q = countHit / countAll;
double latOverall = calculatedLatency.Sum(i => i.Value) / calculatedLatency.Count;
box_eval.Document.Blocks.Add(new Paragraph(new Run(String.Format("Gesamt:\t{0}\nTreffer:\t{1}\nQuote:\t{2} %\n=================================\n",
countAll, countHit, q * 100, latOverall*100))));
var latencyOutput = "";
var latencySum = 0.0;
var latencyCount = 0;
foreach (var lat in calculatedLatency)
{
if (lat.Value >= 0)
{
latencyOutput += String.Format("'{0}' erkannt nach {1} Frames. (= {2} ms)\n", lat.Key, lat.Value, lat.Value * 100);//100ms (3*33ms bei 30 fps)
latencySum += lat.Value;
latencyCount++;
}
else
latencyOutput += String.Format("'{0}' nicht erkannt!\n", lat.Key);
}
box_eval.Document.Blocks.Add(new Paragraph(new Run(String.Format("{0}\nDurchschnittliche Latenz aller erkannten Labels: {1:000.0} ms",latencyOutput, (latencySum/latencyCount)*100))));
}
示例13: Calculate_Click
private void Calculate_Click(object sender, RoutedEventArgs e)
{
try
{
List<priceList> list = new List<priceList>();
for (int i = 0; i < row; i++)
{
var textbox = (TextBox)OrderItemGrid.Children.Cast<UIElement>().First(e1 => Grid.GetRow(e1) == i && Grid.GetColumn(e1) == 1);
var quantity = (TextBox)OrderItemGrid.Children.Cast<UIElement>().First(e1 => Grid.GetRow(e1) == i && Grid.GetColumn(e1) == 3);
int item;
int intquantity;
Int32.TryParse(textbox.Text.ToString(), out item);
Int32.TryParse(quantity.Text.ToString(), out intquantity);
if (item != 0 && intquantity != 0)
{
var t = list.Find(item1 => item1.id.Equals(item));
var priceTem = DataStore.Store.AllProduct.Find(item1 => item1.ID.Equals(item.ToString()));
if (t == null)
{
priceList pc = new priceList();
pc.id = item;
pc.quantity = intquantity;
pc.price = pc.quantity * Double.Parse(priceTem.Price);
list.Add(pc);
}
else
{
t.quantity += intquantity;
t.price = t.quantity * Double.Parse(priceTem.Price);
}
}
}
double fivePercent;
double tenPercent;
double fifteenPercent;
double twentyPercent;
double largest = 0;
string reason = "";
if (row == 0 || list.Count() == 0)
return;
if (DiscountSchema.Content.Equals("Single Highest Schema"))
{
//5% off if you buy 2 iphone 6 –“Iphone 6 Discount”
var temp = list.Find(item1 => item1.id.Equals(1));
if (temp.quantity == 2)
{
var priceTem = DataStore.Store.AllProduct.Find(item1 => item1.ID.Equals("1"));
fivePercent = (5 * temp.quantity * Int32.Parse(priceTem.Price)) / 100;
largest = fivePercent;
reason = "Iphone 6 Discount";
}
//10% off if its customers birthday on the day of ordering any product. – “Birthday Discount”
DateTime today = DateTime.Today;
int monthdiff = currentUser.Birthday.Month - today.Month;
int daydiff = currentUser.Birthday.Day - today.Day;
int yearDiff = currentUser.Birthday.Year - today.Year;
double sum = list.Sum(item => item.price);
if (monthdiff == 0 && daydiff == 0 && yearDiff != 0)
{
tenPercent = (10 * sum) / 100;
if (tenPercent > largest)
{
largest = tenPercent;
reason = "Birthday Discount";
}
}
//15% off if customer is more than 50 years old - “Senior Citizen Discount”
if (yearDiff > 50)
{
fifteenPercent = (15 * sum) / 100;
if (fifteenPercent > largest)
{
largest = fifteenPercent;
reason = "Senior Citizen Discount";
}
}
//.........这里部分代码省略.........
示例14: button1_Click
private void button1_Click(object sender, RoutedEventArgs e)
{
label1.Content = "Drawing";
UpdateLayout();
using (FileStream writer = File.OpenRead(@"C:\Users\Bart\Desktop\KinectPackage\KrystianThird_Marek"))
{
IFormatter formatter = new BinaryFormatter();
OpenedFrames = formatter.Deserialize(writer) as List<KinectLib.SkeletonFrame>;
}
List<Point> points = new List<Point>();
foreach (var frame in OpenedFrames)
{
Point p = new Point();
p.Y = frame.X;
p.X = frame.Z;
points.Add(p);
}
Matrix A = new Matrix();
Vector X = new Vector();
Vector B = new Vector();
A.M11 = points.Count();
A.M12 = points.Sum(o=> o.X);
A.M21 = points.Sum(o => o.X);
A.M22 = points.Sum(o => o.X * o.X);
B.X = points.Sum(o => o.Y);
B.Y = points.Sum(o => o.X * o.Y);
A.Invert();
X.X = A.M11 * B.X + A.M12 * B.Y;
X.Y = A.M21 * B.X + A.M22 * B.Y;
b = X.X;
a = X.Y;
slope = Math.Atan(a);
off_x = canvas1.Width / 2;
off_y = canvas1.Height / 2;
canvas1.Children.Clear();
c_max = OpenedFrames.Select(o => Math.Sqrt((o.X * o.X) + (o.Y * o.Y) + (o.Z * o.Z)) ).Max();
c_min = OpenedFrames.Select(o => Math.Sqrt((o.X * o.X) + (o.Y * o.Y) + (o.Z * o.Z))).Min();
timer.Start();
/*foreach (var frame in OpenedFrames)
{
canvas1.Children.Clear();
Ellipse el = new Ellipse();
el.Width = 10;
el.Height = 10;
el.Fill = new SolidColorBrush(Colors.Red);
Canvas.SetLeft(el, off_x + off_x / 2 * frame.X / c_max);
Canvas.SetTop(el, off_y + off_x / 2 * frame.Y / c_max);
el.InvalidateVisual();
canvas1.Children.Add(el);
UpdateLayout();
}
label1.Content = "Done";*/
}
示例15: GenerateRandomHourlyDistributionInfo
private HourlyDistribution GenerateRandomHourlyDistributionInfo(DateTime currentDate)
{
HourInfo hi;
List<HourInfo> hiList = new List<HourInfo>();
DateTime date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
hi = new HourInfo(date.AddHours(0), 2 + random.NextDouble());
hiList.Add(hi);
for (int i = 1; i < 23; i++)
{
if (i <= 5)
{
hi = new HourInfo(date.AddHours(i), 1 + random.NextDouble());
hiList.Add(hi);
}
else if (i == 6 || i == 7)
{
hi = new HourInfo(date.AddHours(i), random.Next(2, 3) + random.NextDouble());
hiList.Add(hi);
}
else if (i == 8)
{
hi = new HourInfo(date.AddHours(i), random.Next(4, 5) + random.NextDouble());
hiList.Add(hi);
}
else if (i == 9)
{
hi = new HourInfo(date.AddHours(i), random.Next(5, 6) + random.NextDouble());
hiList.Add(hi);
}
else if ((i >= 10 && i <= 11) || i == 20)
{
hi = new HourInfo(date.AddHours(i), random.Next(6, 7) + random.NextDouble());
hiList.Add(hi);
}
else if ((i >= 12 && i <= 13) || (i >= 21))
{
hi = new HourInfo(date.AddHours(i), random.Next(4, 5) + random.NextDouble());
hiList.Add(hi);
}
else if (i >= 14 && i <= 19)
{
hi = new HourInfo(date.AddHours(i), 6 + random.NextDouble());
hiList.Add(hi);
}
}
double sumOfHourInfos = hiList.Sum(l => l.Distribution);
hi = new HourInfo(date.AddHours(23), Math.Abs(100 - sumOfHourInfos));
hiList.Add(hi);
return new HourlyDistribution(currentDate, hiList);
}