{"record":{"id":"e88f0e48e110d4e1","repo":"TheAlgorithms/C-Sharp","slug":"coins-array-cannot-be-empty-nameof-coinsasarray","errorCode":null,"errorMessage":"Coins array cannot be empty {nameof(coinsAsArray)}.","messagePattern":"Coins array cannot be empty (.+?)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs","lineNumber":144,"sourceCode":"\n        return result;\n    }\n\n    private static void ValidateCoin(int coin)\n    {\n        if (coin <= 0)\n        {\n            throw new InvalidOperationException($\"The coin cannot be lesser or equal to zero {nameof(coin)}.\");\n        }\n    }\n\n    private static void ValidateCoinsArray(int[] coinsArray)\n    {\n        var coinsAsArray = coinsArray.ToArray();\n\n        if (coinsAsArray.Length == 0)\n        {\n            throw new InvalidOperationException($\"Coins array cannot be empty {nameof(coinsAsArray)}.\");\n        }\n\n        var coinsContainOne = coinsAsArray.Any(x => x == 1);\n\n        if (!coinsContainOne)\n        {\n            throw new InvalidOperationException($\"Coins array must contain coin 1 {nameof(coinsAsArray)}.\");\n        }\n\n        var containsNonPositive = coinsAsArray.Any(x => x <= 0);\n\n        if (containsNonPositive)\n        {\n            throw new InvalidOperationException(\n                $\"{nameof(coinsAsArray)} cannot contain numbers less than or equal to zero\");\n        }\n\n        var containsDuplicates = coinsAsArray.GroupBy(x => x).Any(g => g.Count() > 1);","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/TheAlgorithms/C-Sharp/blob/96e2905cab7bc6b33ac0a34ee5bb82ddccbcbb6c/Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs#L126-L162","documentation":"ValidateCoinsArray is a private validation helper invoked by GenerateSingleCoinChanges; it throws InvalidOperationException when the coins array is empty because a change-making system without denominations cannot produce any amount. The faulting input is the empty coins array.","triggerScenarios":"Thrown at Algorithms/Problems/DynamicProgramming/CoinChange/DynamicCoinChangeSolver.cs:144 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-empty denominations array containing at least the coin of value 1, which this solver also requires.","Guard the call site: check coinsArray.Length > 0 before invoking GenerateSingleCoinChanges and surface a clear message instead.","Fix the upstream deserialization/conversion that produced an empty coin set."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"96e2905cab7bc6b33ac0a34ee5bb82ddccbcbb6c","analyzedAt":"2026-09-13T17:04:01.438Z","contentChangedAt":"2026-09-13T17:04:01.438Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}