по урокам Гошы Дудоря
Операратор foreach не работаеь с переменными типа CarsListViewModel , так как CarsListViewModel не содержит открытое определение экзепляра или расширение для getenumerator....
public static void name(string name){
this.Text = name;
}
function Invoke-MS16-032 {
<#
.SYNOPSIS
PowerShell implementation of MS16-032. The exploit targets all vulnerable
operating systems that support PowerShell v2+. Credit for the discovery of
the bug and the logic to exploit it go to James Forshaw (@tiraniddo).
Targets:
* Win7-Win10 & 2k8-2k12 <== 32/64 bit!
* Tested on x32 Win7, x64 Win8, x64 2k12R2
Notes:
* In order for the race condition to succeed the machine must have 2+ CPU
cores. If testing in a VM just make sure to add a core if needed mkay.
* The exploit is pretty reliable, however ~1/6 times it will say it succeeded
but not spawn a shell. Not sure what the issue is but just re-run and profit!
* Want to know more about MS16-032 ==>
https://googleprojectzero.blogspot.co.uk/2016/03/exploitinfE&6W74f&6W72РD6&W7VBW&V3%ӣ66TFRE&6W74fF&VBРРР2'V76Rb7FvF6bVFvR66PРE7F'EFV&6R7FРE6fTwV&B7FРЧ
Т.е. при помощи циклов и условных операторов, чтобы было понятно как это работает, чтобы не было скрытых действий таких, как myArray.Max. или myArray.Min.
using System;
using System.Collections.Generic;
using System.Linq;
var array = new[] {3, 10, 16, 2, 8};
var result = FindMediumPoint(array);
Console.WriteLine(string.Join(" ", result));
static IEnumerable<int> FindMediumPoint(int[] sequence)
{
var min = sequence.Min(); // Минимум
var max = sequence.Max(); // Максимум
var diff = max - min; // Разброс между минимумом и максимумом
var avg = diff / 2; // Середина "Разброса"
var center = min + avg;
var actualCenterDiffs = sequence
.Select(number => number - center) // Находим отклонение числа
.GroupBy(Math.Abs) // Группируем те числа, у которых одинаковое абсолютное отклонение
.OrderBy(x => x.Key) // Сортируем в порядке увеличения отклонения
.First(); // Берём первое по порядку (минимальное)
return actualCenterDiffs
.Select(diff => diff + center); // Применяем отклонение к найденному центру;
}
var dictionary = new Ditionary<string, string>();
string[] keys = dictionary.Keys.ToArray(); // ToArray - это метод-расширение (extension method)
var dictionary = new Dictionary<string, string>();
var sb = new StringBuilder();
foreach(var kv in dictionary) { // В принципе, можно оптимизировать, если писать не в StringBuilder, а сразу в стрим, который ассоциируется с файлом.
sb.AppendLine($"{kv.Key}={kv.Value}");
}
var text = sb.ToString();
// Дальше пишем text в файл.
var dictionary = new Dictionary<string,string>();
var lines= File.ReadAllLines("pathToFile"); // читаем построчно
foreach(var line in lines) {
var tokens = line.Split("=");
var key = tokens[0].Trim();
var value = string.Join("", tokens.Skip(1)).Trim();
dictionary[key] = value;
}
// Используем dictionary как хотим