1. C# / Говнокод #23312

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static bool isNumber(object p_Value)
    {
        if (int.Parse(p_Value.ToString()).GetType().Equals(typeof(int)))
            return true;
        return false;
    }

    говновый метод узнать цифра или нет

    govnoBet, 30 Августа 2017

    Комментарии (6)
  2. C# / Говнокод #23311

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    public List<List<Selection>> CompareMarketsForSurebet(List<Market> markets)
    {
        if (markets.Count == 0) return null;
        // We analyse markets where we have 2 or 3 outcomes, if i'm not mistaken
        markets = markets.Where(x => x.Selections.Count > 1 && x.Selections.Count < 4).ToList();
        if (markets.All(CheckForSurebet)) return null;
    
        var selectionsCount = markets[0].Selections.Count;
        var surebets = new List<List<Selection>>();
        var p1 = markets.Select(x => x.Selections[0]).ToList();
        var p2 = markets.Select(x => x.Selections[1]).ToList();
        var p3 = new List<Selection>();
        if (selectionsCount > 2) p3 = markets.Select(x => x.Selections[2]).ToList();
    
        if (markets.All(x => x.Name == markets[0].Name))
        {
            var listOfOdds = new List<Selection>();
            var clone = new List<Selection>();
            foreach (var t1 in p1)
            {
                listOfOdds.Add(t1);
                foreach (var t2 in p2)
                {
                    listOfOdds.Add(t2);
                    if (selectionsCount > 2)
                    {
                        foreach (var t3 in p3)
                        {
                            listOfOdds.Add(t3);
                            if (SurebetFormule(listOfOdds.Select(x => x.K)))
                            {
                                clone = listOfOdds.ToList();
                                surebets.Add(clone);
                            }
                            listOfOdds.RemoveAt(listOfOdds.Count - 1);
                        }
                        listOfOdds.RemoveAt(listOfOdds.Count - 1);
                    }
                    else
                    {
                        if (SurebetFormule(listOfOdds.Select(x => x.K)))
                        {
                            clone = listOfOdds.ToList();
                            surebets.Add(clone);
                        }
                        listOfOdds.RemoveAt(listOfOdds.Count - 1);
                    }
                }
                listOfOdds.Clear();
            }
        }
        return surebets;
    }

    выявлял surebet-ы говновой функцией :)

    govnoBet, 30 Августа 2017

    Комментарии (0)
  3. C# / Говнокод #23310

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    public List<Market> GetMarkets(List<Sport> sports)
    {
         return (from sport in sports from region in sport.Regions from league in region.Leagues from game in league.Games from market in game.Markets select market).ToList();
    }

    вонючий код от решарпера

    govnoBet, 30 Августа 2017

    Комментарии (2)
  4. C# / Говнокод #23290

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    var vals =
                            tagsTypes.Zip(times,
                                (tagType, time) =>
                                {
                                    if (error != null)
                                        return new { time = time, val = (object)ServiceValue.DataSourceNotAvailable };
                                    if (!timedVals.ContainsKey(tagType.tag))
                                        return new { time = time, val = (object)ServiceValue.NoValue };
                                    if (timedVals[tagType.tag].Count == 0)
                                        return new { time = time, val = (object)ServiceValue.NoValue };
                                    var value = timedVals[tagType.tag].Find(x => x.TimestampUTC == time.ToUniversalTime() && x.Value!=null);
                                    if (value != null && value.IsGood())
                                    {
                                        if (value.Value == null)
                                            return new { time = time, val = (object)ServiceValue.Error };
                                        else
                                        {
                                            if (!string.IsNullOrEmpty(value.DigitalSetValue))
                                                return new { time = time, val = (object)value.DigitalSetValue };
                                            return new { time = time, val = value.Value };
                                        }
                                    }
                                    else
                                    {
                                        var val = _connection.GetTagByName(tagType.tag).Data.ArcValue(time, RetrievalTypeConstants.rtAuto);
                                        if (!string.IsNullOrEmpty(val.DigitalSetValue))
                                            return new { time = time, val = (object)val.DigitalSetValue };
                                        return new { time = time, val = val.Value };
                                    }
                                        return new { time = time, val = (object)ServiceValue.Error };                            
    
                                }).ToArray();

    давайте ка рассортируем значения по аттрибутам

    gogolevsergey, 23 Августа 2017

    Комментарии (1)
  5. C# / Говнокод #23277

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    public static int index(string word, char comp)
            {
                int k = -1;
                for (int i = 0; i < word.Length; i++)
                    if (word[i] == comp)
                    {
                        k = i;
                        break;
                    }
                return k;
            }
    
            public static char[] strtocharr(string str)
            {
                char[] tmp = new char[str.Length];
                for (int i = 0; i < tmp.Length; i++)
                    tmp[i] = str[i];
                return tmp;
            }
    
            public static string charrtostr(char[] charr)
            {
                string tmp = null;
                for (int i = 0; i < charr.Length; i++)
                    tmp = String.Format("{0}{1}", tmp, charr[i]);
                return tmp;
            }
    
            public static char maskfromword(string word)
            {
                return word[word.Length - 1];
            }
    
            public static string maskfromword(string word, int n)
            {
                string mask = null;
                for (int i = 0; i < n; i++)
                    mask = String.Format("{0}{1}", mask, word[word.Length - 1]);
                return mask;
            }
    
            public static char Counter(char crnt, string word)
            {
                if (crnt != maskfromword(word))
                    crnt = word[index(word, crnt) + 1];
                else
                    crnt = word[0];
                return crnt;
            }
    
            public static string Counter(string prev, string word, int k)
            {
                char[] tmp = strtocharr(prev);
                if (k >= prev.Length - 1)
                    k = prev.Length - 1;
                else
                    for (int i = k + 1; i < prev.Length; i++)
                        tmp[i] = word[0];
                if (tmp[k] == maskfromword(word))
                    return MultiCounter(prev, word, k - 1);
                else
                    tmp[k] = Counter(tmp[k], word);
                return charrtostr(tmp);
            }

    Список методов, позволяющие сделать счетчик по словарю (полезно для генераторов словарей) на любое количество символов.

    Vero92, 18 Августа 2017

    Комментарии (36)
  6. C# / Говнокод #23255

    +3

    1. 1
    2. 2
    public bool Success { get; set; }
            public bool Failure { get { return !Success; } set { Success = !value; } }

    И не поспоришь!

    pipjaka, 10 Августа 2017

    Комментарии (0)
  7. C# / Говнокод #23251

    −2

    1. 1
    labelViewData.CreateTextPainterAccordingAllowedBoundsForLabels

    По Макконнеллу. Название метода должно отражать всю его суть и даже немножко деталей реализации. Ну как немножко, почти все.

    Ekze, 09 Августа 2017

    Комментарии (3)
  8. C# / Говнокод #23243

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    internal static object CreateDefaultEqualityComparer(Type type)
            {
                Debug.Assert(type != null && type is RuntimeType);
    
                object result = null;
                var runtimeType = (RuntimeType)type;
    
                // Specialize for byte so Array.IndexOf is faster.
                if (type == typeof(byte))
                {
                    result = new ByteEqualityComparer();
                }
                // If T implements IEquatable<T> return a GenericEqualityComparer<T>
                else if (typeof(IEquatable<>).MakeGenericType(type).IsAssignableFrom(type))
                {
                    result = CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericEqualityComparer<int>), runtimeType);
                }
                // Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
                // Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
                else if (type.IsGenericType)
                {
                    if (type.GetGenericTypeDefinition() == typeof(Nullable<>))
                    {
                        result = TryCreateNullableEqualityComparer(runtimeType);
                    }
                }
                // The equality comparer for enums is specialized to avoid boxing.
                else if (type.IsEnum)
                {
                    result = TryCreateEnumEqualityComparer(runtimeType);
                }
                
                return result ?? CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(ObjectEqualityComparer<object>), runtimeType);
            }

    Код взят из CoreCLR mscorlib сырцов.

    Внимание вопрос. Нахерна было писать эту обосгость когда данный метод легко делается генериком без какого либо вызова "невидимого" кода?

    вот пример как все должно было быть

    ```
    internal static object CreateDefaultEqualityComparer<T>()
    {
    // Specialize for byte so Array.IndexOf is faster.
    if (typeof(T) == typeof(byte))
    {
    result = new ByteEqualityComparer();
    }
    // If T implements IEquatable<T> return a GenericEqualityComparer<T>
    else if (typeof(IEquatable<T>).IsAssignableFrom( typeof(T)))
    {
    result new GenericEqualityComparer<T>();
    }
    // Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
    // Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
    else if (typeof(T).IsGenericType)
    {
    if (typeof(T).GetGenericTypeDefinition() == typeof(Nullable<>))
    {
    result = new NullableEqualityComparer<T>();
    }
    }
    // The equality comparer for enums is specialized to avoid boxing.
    else if (typeof(T).IsEnum)
    {
    result = TryCreateEnumEqualityComparer<T>();
    }

    return result ?? new ObjectEqualityComparer<T>();
    }
    ```

    ASD_77, 07 Августа 2017

    Комментарии (10)
  9. C# / Говнокод #23239

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    internal static object CopyImmutableSortedDictionary<K, V>(object original, ICopyContext context)
    {
                return original;
    }

    Microsoft Orleans https://github.com/dotnet/orleans

    Копирование объекта в 2к17

    ClockworkAlex, 04 Августа 2017

    Комментарии (5)
  10. C# / Говнокод #23238

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    public void GetMapping(DbObject obj, IEnumerable<DbObject> map = null, params string[] additional)
    {
        Mapper m = Mapper.Get(obj.DialectType);
        switch (m.MapperType)
        {
            case MapperType.SST:
                m.Initialize(null, additional);
                break;
            case MapperType.SSM:
                m.Initialize(null, additional);
                break;
            default:
                throw new ArgumentException();
        }
        // применение: этот метод возвращает List<Tupple<DbObject, DbObject>>
        m.GetMappingByDialect(obj, map);
    }
    
    public enum MapperType
    {
        SST,
        SSM,
    }

    Во-вторник - этот код, выбил меня из рабочего процесса на весь день ...

    spyrytus, 04 Августа 2017

    Комментарии (0)