- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
var actions = new List<Action>();
foreach (var i in Enumerable.Range(1, 3))
{
actions.Add(() => Console.WriteLine(i));
}
foreach (var action in actions)
{
action();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+140
var actions = new List<Action>();
foreach (var i in Enumerable.Range(1, 3))
{
actions.Add(() => Console.WriteLine(i));
}
foreach (var action in actions)
{
action();
}
Внезапно:
http://ideone.com/RaiHr
http://ideone.com/EMQBA
+141
var x = new { Items = new List<int> { 1, 2, 3 }.GetEnumerator() };
while (x.Items.MoveNext())
{
Console.WriteLine(x.Items.Current);
}
http://ideone.com/Qzdki
+137
public List<int> parseInt(string input)
{
string res = "";
int i = 0;
while (input[i] != ' ')
{
res = res + input[i];
//System.Console.WriteLine(res + " = res[" + i + "]");
i++;
}
i = res.Length - 4;
List<int> num = new List<int>();
for (int j = 0; i > -4; i = i - 4, j++)
{
try
{
num.Add(int.Parse(res.Substring(i, 4)));
}
catch (Exception e1)
{
try
{
num.Add(int.Parse(res.Substring(i + 1, 3)));
}
catch (Exception e2)
{
try
{
num.Add(int.Parse(res.Substring(i + 2, 2)));
}
catch (Exception e3)
{
num.Add(int.Parse(res.Substring(i + 3, 1)));
}
}
}
//System.Console.WriteLine(num[j]+" = num["+j+"]");
}
return num;
}
Опять студенты.
Задание: реализовать длинную арифметику.
один из примеров чтения длинного числа
+139
private static string f(bool? arg)
{
switch (arg)
{
case true: return "true";
case false: return "false";
case null: return "null";
default: return "???";
}
}
В продолжение историй про bool-shit. Если строку 8 убрать, то Visual Studio пишет:
"Error 3 'f(bool?)': not all code paths return a value"
Что должно быть в аргументе, чтобы попасть в ветку default?
+139
switch (!_data.Provider)
{
case true: _currentState = states.DT2F; break;
case false: _currentState = states.DT2P; break;
}
Проверка двух условий
+138
private static T GetElementValue<T>(this XmlElement elm, string elementName, T defaultValue = default(T), bool throwIfError = false, bool throwIfMissing = false)
where T : IConvertible
{
string val = GetElementValue(elm, elementName);
if (string.IsNullOrEmpty(val) == false)
{
if (typeof(T) == typeof(string))
{
return (T)(object)val;
}
if (typeof(T) == typeof(bool))
{
return (T)(object)(val == "1");
}
try
{
if (typeof(T) == typeof(DateTime))
{
return (T)(object)DateTime.Parse(val, System.Globalization.CultureInfo.InvariantCulture); ;
}
return (T)Convert.ChangeType(val, typeof(T), CultureInfo.InvariantCulture);
}
catch (Exception exc)
{
if (throwIfError)
throw exc;
}
}
if (throwIfMissing)
throw new ArgumentNullException("The parameter '" + elementName + "' is missing");
return defaultValue;
}
Используем Generics по-фэншую!
+104
283: public static IList<Service> MultithreadHostCheckImplementation(string userName, string userPassword, string clientName, string serviceName, int iImplType, string samsungAccessToken,
bool checkSamsungAccountInCustomProps,string clientSoftware,string decryptedInstallKey,
out Guid userRefId, out string subscriptionId, out bool isIPhoneUser, out string serviceHostHeader)
{
//....
783: }
Русский код. Ровно 500 строк отборного!
+137
private string ExtractNodeValue(string text, string nodeName)
{
string result = string.Empty;
int slength = ("<" + nodeName + ">").Length;
int sindex = text.IndexOf("<" + nodeName + ">");
int eindex = text.IndexOf("</" + nodeName + ">");
if (sindex > 0 && eindex > 0)
result = text.Substring(sindex + slength, eindex - sindex - slength);
return result;
}
string request = string.Format("http://maps.google.com/maps/geo?ll={0},{1}&hl=en&output=xml&key=abcdefg", location.latitude, location.longitude);
Logger.Log(request);
HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(request);
WebResponse responce = httprequest.GetResponse();
Stream str = responce.GetResponseStream();
XmlTextReader reader = new XmlTextReader(str);
reader.XmlResolver = null;
XmlDocument doc = new XmlDocument();
doc.Load(reader);
str.Close();
reader.Close();
XmlNodeList listResponse = doc.ChildNodes[1].ChildNodes[0].ChildNodes;
foreach (XmlNode nodePlace in listResponse)
{
if (nodePlace.Name == "Placemark")
{
string text = nodePlace.InnerXml;
string Country = ExtractNodeValue(text, "CountryName");
if ((this.DataContext.Countries.Count(x => x.Name == location.countryName) == 0 || string.IsNullOrWhiteSpace(location.countryName)) &&
!string.IsNullOrWhiteSpace(Country))
{
location.countryName = Country;
}
string Region = ExtractNodeValue(text, "AdministrativeAreaName");
if (this.DataContext.States.Count(x => x.AlphaCode == location.region || x.Name == location.region) == 0 &&
!string.IsNullOrWhiteSpace(Region))
{
location.region = Region;
}
string City = ExtractNodeValue(text, "LocalityName");
if (this.DataContext.Cities.Count(x => x.Name == location.city) == 0 &&
!string.IsNullOrWhiteSpace(City))
{
location.city = City;
}
break;
}
}
отличный парсиг xml.
+102
...
while (GetRateStumpNew(_rateStumps, ddtdDateBegin, dDateEnd, out sstrRateStumpsNew,
out ddtDateEditrateStumps, out ddouRateStumpsNew))
{
//если хоть раз сюда зашло, то ставим флагец
isStumpForFirst = true;
//записываем дату
ddtdDateBegin = ddtDateEditrateStumps;
//если один раз зашли, то дальше можно не проверять
goto l1; //временно
}
l1:
...
Полный контроль над последовательностью выполнения кода
+141
public string Search(string title)
{
List<string> str1 = new List<string>();
string count = cmainlibrary.Count.ToString();
int counter = Convert.ToInt32(count);
int i = 0;
for ( i = 0; i < counter; i++)
{
string title_library = cmainlibrary[i].Title.ToString();
if (title.ToUpper().Contains(title_library. ToUpper()))
{
str1.Add(cmainlibrary[i].Title);
}
}
return str1[i];
}
Хотя я это выкладывал в коментариях к говнокоду #11830, решил повеселить народ отдельным постом.
Это реализация библиотеки книг. Метод должен искать список книг которые соответствуют title.