Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shonharsh/csharp-exercism-s05e01-tuples-phonenumberanalysis
Exercism - This C# project is about tuples and analyzing phone numbers.
https://github.com/shonharsh/csharp-exercism-s05e01-tuples-phonenumberanalysis
academic artificial-intelligence atom automation bot config csharp education git guide learning markdown phone-number process studio testing training-materials trending tuples windows
Last synced: 6 days ago
JSON representation
Exercism - This C# project is about tuples and analyzing phone numbers.
- Host: GitHub
- URL: https://github.com/shonharsh/csharp-exercism-s05e01-tuples-phonenumberanalysis
- Owner: ShonHarsh
- License: mit
- Created: 2024-06-14T17:33:20.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-17T22:02:43.000Z (7 months ago)
- Last Synced: 2024-11-15T10:07:52.128Z (2 months ago)
- Topics: academic, artificial-intelligence, atom, automation, bot, config, csharp, education, git, guide, learning, markdown, phone-number, process, studio, testing, training-materials, trending, tuples, windows
- Language: C#
- Homepage:
- Size: 102 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![Banner](Data/Images/CSharp-Exercism-S05E01-Tuples-PhoneNumberAnalysis.png)
### CSharp-Exercism-S05E01-Tuples-PhoneNumberAnalysis
This repository my work for the [Exercism](https://exercism.org/) C# track.
### Download Command
`exercism download --track=csharp --exercise=phone-number-analysis`### Submission Command
`exercism submit "Exercism\csharp\log-analysis\PhoneNumberAnalysis.cs"`![Banner](Data/Images/CSharp-Exercism-S05-Tuples-Title.png)
# Phone Number Analysis
Welcome to Phone Number Analysis on Exercism's C# Track.
If you need help running the tests or submitting your code, check out `HELP.md`.
If you get stuck on the exercise, check out `HINTS.md`, but try and solve it without using those first :)## Introduction
## Tuples
In C#, a tuple is a data structure which organizes data, holding two or more fields
of any type.A tuple is typically created by placing 2 or more expressions separated by commas,
within a set of parentheses.```csharp
string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);
```A tuple can be used in assignment and initialization operations, as a return value or a method argument.
Fields are extracted using dot syntax. By default, the first field is `Item1`,
the second `Item2`, etc. Non-default names are discussed below.```csharp
// initialization
(int, int, int) vertices = (90, 45, 45);// assignment
vertices = (60, 60, 60);// return value
(bool, int) GetSameOrBigger(int num1, int num2)
{
return (num1 == num2, num1 > num2 ? num1 : num2);
}// method argument
int Add((int, int) operands)
{
return operands.Item1 + operands.Item2;
}
```Field names `Item1` etc. do not make for readable code. The code below shows
2 ways to name the fields of tuples. Note also, in the code below, that `var` can be used with tuples and the type inferred. This works equally well for tuples with named and unnamed fields.```csharp
// name items in declaration
(bool success, string message) results = (true, "well done!");
bool mySuccess = results.success;
string myMessage = results.message;// name items in creating expression
var results2 = (success: true, message: "well done!");
bool mySuccess2 = results2.success;
string myMessage2 = results2.message;
```## Instructions
This exercise has you analyze phone numbers.
You are asked to implement 2 features.
Phone numbers passed to the routines are guaranteed to be in the form
NNN-NNN-NNNN e.g. 212-515-9876 and non-null.## 1. Analyze a phone number
Your analysis should return 3 pieces of data
1. An indication of whether the number has a New York dialing code ie. 212 as the first 3 digits
2. An indication of whether the number is fake having 555 as a prefix code in positions 5 to 7 (numbering from 1)
3. The last 4 digits of the number.Implement the (static) method `PhoneNumber.Analyze()` to produce the phone number info.
```csharp
PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")
```## 2. Detect if a phone number has a fake prefix code (555)
Implement the (static) method `PhoneNumber.IsFake()` to detect whether the phone number is fake using the phone number info produced in task 1.
```csharp
PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
```## Source
### Created by
- @mikedamay
### Contributed to by
- @ErikSchierboom
- @yzAlvin