otra forma de concatenar cadenas a partir de .net core 5
Introducción a C#
¿Por qué aprender C#? ¿Para qué sirve?
Instalación de Visual Studio Community
Conoce .NET 6
Introducción a Visual Studio y nuestro primer "Hola, mundo" en consola
¡Nuestro primer "Hola, mundo" en una aplicación gráfica!
¿Cómo funcionan los Namespaces en C#?
Lógica de programación
Tipos de datos
Variables
Manejo de strings
Trabajando con números y operadores aritméticos
Operadores lógicos
Operadores relacionales
Cómo leer datos de un usuario en C#
Arreglos en C#
Listas
Métodos o methods
Métodos de strings
Cómo crear tus propios métodos
Bucles y estructuras de control en C#
La sentencia if
La sentencia switch
Ciclo for
Ciclo while
Proyecto
Introducción del proyecto: sistema de registros de usuarios
Creando la búsqueda y el registro de usuarios
Finalizado del proyecto: mostrando la lista de usuarios registrados
Tus siguientes pasos con C#
POO: tu siguiente paso con C#
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Ricardo Celis
Aportes 40
Preguntas 17
otra forma de concatenar cadenas a partir de .net core 5
Formas de definir un Array o Matrices
Sin especificar número de espacios.
int[] array1;
Declarando numero de espacios, se inicializa el array con el numero de espacios mediante new.
int[] array2 = new int[5];
Numero de espacios y valores, establecemos el numero de espacios y el valor de cada uno en la misma declaración.
int[] array3 = new int[3] { 3, 5, 10};
Sin especificar numero de espacios, el numero de espacios del array de define mediante el numero de valores en la declaración.
int[] array4 = { 4, 9, 5, 1 };
Siendo este ultimo el que se muestra en la clase
Importante recordar, los arreglos tienen un length, que es el tamaño real de tu arreglo, por ejemplo:
string[] coffeTypes = new string[4];
En este caso tenemos un arreglo de tamaño 4, lo que significa que el último dato en este arreglo será el índice 3.¿Por qué?
Porque los arreglos comienzan desde índice 0, hasta el length - 1. en este caso, 3.
Por lo tanto si yo hago un ciclo cualquiera, como un for, debo hacerlo hasta el tamaño del arreglo < 1, es decir, el término del ciclo debe ser cuando tengo un valor igual al length o mayor.
Por ejemplo
for(int i = 0 ; i < 4 ; i++){}
También importante recordar que los arreglos tienen integrados de manera implícita el length que tienen, por esto es que tambien funciona lo siguiente:
for(int i = 0 ; i < coffeTypes.Length ; i++){}
Otra manera de hacerlo:
Café se escribe con dos “e” al final, “Coffee”. Buena Clase. 👍🏻
Acá les dejo la documentación oficial para que vayan complementando lo aprendido con ella. Por cierto es muy buena práctica ir leyendo la documentación, sobretodo si estamos iniciando con algún lenguaje o tecnología.
https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/
Otra forma de recorrer un arreglo con foreach
string[] coffeTypes ={"Cappuccino", "Mocca", "Expresso", "Americano" };
foreach (var item in coffeTypes)
{
Console.WriteLine(item);
}
Les comparto mi codigo:
using System;
namespace _14_Arreglos
{
class Program
{
static void Main()
{
Console.WriteLine("************ Coffee Shop Platzi ************");
string[] coffeeTypes;
float[] coffeeValues;
coffeeTypes = new string[] { "Express", "Largo", "Filtrado", "Latte" };
coffeeValues = new float[] { 1.2f, 1.5f, 5.0f, 5.5f };
for (int i = 0; i < coffeeTypes.Length; i++)
{
Console.WriteLine($"☕️ Cafe { coffeeTypes[i] }: ${ coffeeValues[i] }");
}
}
}
}
Y el resultado en consola:
************ Coffee Shop Platzi ************
☕️ Cafe Express: $1.2
☕️ Cafe Largo: $1.5
☕️ Cafe Filtrado: $5
☕️ Cafe Latte: $5.5
Los arreglos en C# son una colección de variables del mismo tipo de datos. Pueden ser declarados de la siguiente manera:
int[] myArray = new int[5]; // Declara un arreglo de enteros con 5 elementos
También se pueden inicializar al momento de declarar
int[] myArray = new int[] {1, 2, 3, 4, 5}; // Declara un arreglo de enteros con los valores 1, 2, 3, 4 y 5
o
int[] myArray = {1, 2, 3, 4, 5}; // Declara un arreglo de enteros con los valores 1, 2, 3, 4 y 5
Para acceder a un elemento específico del arreglo, se utiliza el índice del elemento, que comienza en 0. Por ejemplo:
int[] myArray = {1, 2, 3, 4, 5};
int thirdElement = myArray[2]; // thirdElement es igual a 3
Los arreglos en C# tienen varios métodos y propiedades útiles, como Length
, que devuelve la cantidad de elementos en el arreglo, o Sort()
que ordena los elementos del arreglo.
int[] myArray = {5, 3, 8, 1, 4};
int arrayLength = myArray.Length; // arrayLength es igual a 5
Array.Sort(myArray); //myArray es ahora {1,3,4,5,8}
using System;
namespace ArrayDemoProject
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
string[] coffeTypes;
float[] coffeValues;
coffeTypes = new string[] { "Expresso", "Largo", "Filtrado", "Latte" };
coffeValues = new float[] { 1.2f, 1.5f, 5.0f, 5.5f };
for(int i = 0; i < coffeTypes.Length; i++)
{
Console.WriteLine($"{coffeTypes[i]} Coffe ${coffeValues[i]}");
}
}
}
}
Esta es otra forma de agregar valores/datos a tu Array en .NET 6
string rightSpelling = CoffeeTypeAutocorrect("Expresso");
Console.Writeline(rightSpelling); // returns: Espresso ☕️
Una corrida vale más que mil palabras!!! 😃
Profe buenas tardes, días o noches.
Obviamente no le voy a enseñar a mi papá a hacer hijos, pero me gustaría hacer la observación de que cuando imprime por primera vez el arreglo coffeTypes, el lenght de nuestro arreglo si es 3, y el elemento Latte no se imprime por el hecho de que la condición dice que i tiene que ser “menor a 3”, así que cuando i es “igual a 3” la condición ya no se cumple por lo que se sale del ciclo.
En cambio, si se usa la condicional i<=3 (menor o igual a 3) este se cumple y permite imprimir correctamente los 4 elementos:
i [0] = "Expresso"
i [1] = "Largo"
i [2] = "Filtrado"
i [3] = "Latte"
ya que como comenta usted en el video: el 0 también cuenta 😃
Adjunto un ejemplo con la ejecución de mi programa con la condicional que comenté anteriormente:
Cuando el profe hace el
for (int i = 0; 0 < 4; i++)
Console.WriteLine(coffeeTypes[i]);
Él hace una explicación un tanto confusa, dice que son 4 valores ¿Por qué? porque se toma en cuenta el 0. Eso sigue sin tener sentido porque si se cuenta el valor 0, el conteo solo da hasta 3.
Lo que pasa es que debería ser.
for (int i = 0; 0 <= 3; i++)
Console.WriteLine(coffeeTypes[i]);
Más bien ambas maneras son correctas, pero la explicación del profe no lo estaba. NO son 4 valores, son 3 contando el 0, y como se está poniendo que aumente solo si i es menor a 3 entonces solo se van a imprimir valores hasta que i sea igual a 2, por eso solo se imprimían hasta Filtrado y no hasta Latte.
// See https://aka.ms/new-console-template for more information
Console.WriteLine(“precios de cafe shad”);
string[] cafes;
float[] costos;
cafes = new string[]
{
“express”,“tinto claro”,“tinto con panela”,“tinto con yerbas buenas”
};
costos = new float[] { 3400, 1400, 1600, 3000 };
for(int i = 0; i < 4; i++)
{
Console.WriteLine(cafes[i]+ " : " + costos[i]);
}
Otra forma de declarar arreglos en C#:
si alguien no sabe en un array en las llaves van el tamaño del array.
<code>
<code>
CoffeTypes = new string[aqui se especifica el tamaño del array] { "expresso", "largo", "filtrado", "latte" };
Madre mía jaja, comparado con JavaScript este lenguaje se complica más, tiene bastante más sintáxis,
Les dejo un video del algoritmo insertion sort en C# trabajado con array.
https://youtu.be/5BrUISr2t-s
Con arrays se puede hacer muchas cosas , solo falta idear y empezar 😃
este es mi codigo para un concecionario de carros
<string[] tiposDeCarros;
float[] carrosValue;
string[] metodos;
float[] cuotas;
tiposDeCarros = new string[] { "Koenigsegg Agera RS", "Hennessey Venom GT", "Bugatti Veyron Super Sport", "Bugatti Chiron " };
carrosValue = new float[] { 3000000f, 2000000f, 1000000f, 900000f };
metodos = new string[] { "tarjeta debito", "tarjeta credito", "efectivo" };
cuotas = new float[] { 60, 50, 70, 80 };
Console.WriteLine("bienvenido a SportCars, acontinuacion una lista de los carros en disponivilidad");
for (int i = 0; i < 4; i++)
Console.WriteLine(tiposDeCarros[i] + "carros $" + carrosValue[i]);
Console.WriteLine("Vas a comprar alguno?");
string respuesta1 = Console.ReadLine();
if (respuesta1 == "si")
{
Console.WriteLine("con que metodo de pago");
for (int a = 0; a < 3; a++)
Console.WriteLine(metodos[a]);
string respuesta2 = Console.ReadLine();
if (respuesta2 == "tarjeta debito")
{
Console.WriteLine("que auto compraras");
for (int i = 0; i < 4; i++)
Console.WriteLine(tiposDeCarros[i]);
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if(respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
if(respuesta2 == "efectivo")
{
Console.WriteLine("que auto compraras");
for (int i = 0; i < 4; i++)
Console.WriteLine(tiposDeCarros[i]);
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if (respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
else if (respuesta2 == "tarjeta credito")
{
Console.WriteLine("cuantas cuotas");
for (int b = 0; b < 4; b++)
Console.WriteLine(cuotas[b]);
string respuesta4 = Console.ReadLine();
if (respuesta4 == "60")
{
Console.WriteLine("que auto compraras");
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if (respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
if (respuesta4 == "50")
{
Console.WriteLine("que auto compraras");
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if (respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
if (respuesta4 == "70")
{
Console.WriteLine("que auto compraras");
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if (respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
if (respuesta4 == "80")
{
Console.WriteLine("que auto compraras");
string respuesta3 = Console.ReadLine();
if (respuesta3 == "Koenigsegg Agera RS")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Hennessey Venom GT")
{
Console.WriteLine("gracias por tu compra");
}
if (respuesta3 == "Bugatti Veyron Super Sport")
{
Console.WriteLine("gracias por tu compra");
}
else if (respuesta3 == "Bugatti Chiron")
{
Console.WriteLine("gracias por tu compra");
}
}
}
}
else if (respuesta1 == "no")
{
Console.WriteLine("Buenon gracias por visitarnos");
}
else
{
Console.WriteLine("como? no logro entenderte adios");
}>
Enseñar vectores antes que for mmmmmmmmmmmmmmmm
Máquina de café:
bool newClient = true;
string[] coffeTypes = { "Expresso", "Largo", "Filtrado", "Latte" };
float[] coffePrices = { 1.2f, 1.5f, 5.0f, 5.5f };
if (newClient)
{
Console.WriteLine("Do you want a coffee?\n 1. Yes\n 2. No");
int clientResponse = int.Parse(Console.ReadLine());
if (clientResponse == 1)
{
Console.WriteLine("Coffees available. Please select a number:");
for (int i = 0; i < coffeTypes.Length; i++)
{
Console.WriteLine((i + 1) + ". " + coffeTypes[i]);
};
int clientRequest = int.Parse(Console.ReadLine());
switch (clientRequest)
{
case 1:
Console.Write("It costs $" + coffePrices[0]);
break;
case 2:
Console.Write("It costs $" + coffePrices[1]);
break;
case 3:
Console.Write("It costs $" + coffePrices[2]);
break;
case 4:
Console.Write("It costs $" + coffePrices[3]);
break;
default:
Console.WriteLine("You haven't selected the coffee correctly.");
break;
};
}
else
{
Console.WriteLine("Ok, Goodbye!");
}
}
string[] coffeTypes;
float[] coffeValues;
//Declaramos los valores que tendremos en los arrays
coffeTypes = new string[] {"Expresso","Capuccino","Largo","Filtrado","Latte"};
coffeValues = new float[] { 1.2f , 2.0f , 3.0f , 5.0f , 5.5f };
//Cambiando valor de un elemento del string
//Accedemos a el valor 1 de nuestro array coffeTypes, y modificamos ingresando el nuevo valor
coffeTypes[1] = "Lungo";
//Mientras i sea menor que la cantidad de datos en coffetypes
for (int i=0; i < coffeTypes.Length; i++)
{
//Imprime los elementos de nuestro string concatenando los valores flotantes del segundo string
Console.WriteLine(coffeTypes[i] + " Coffe $" + coffeValues[i] );
}
Si ponen en el ID “cw” el IDE les pondrá el console.writeline(); y solo tendrán que escribir el contenido de adentro
namespace ArrayDemoProject
{
class Program
{
static void Main(string[] args)
{
string[] coffeTypes;
float[] coffePrices;
coffeTypes = new string[] { "Expres", "Largo", "Filtrado",
"Latte"};
coffePrices = new float[] {1.2f, 1.5f, 5.0f, 5.5f };
for (int i = 0; i < coffeTypes.Length; i++)
{
Console.WriteLine(coffeTypes[i] + " Coffe $" +
coffePrices[i]);
}
}
}
}
coffee*
jokes aside, ricardo maneja muy bien el ingles en realidad, de los mejores que lo utilizan dentro platzi imo.
También se pude inicializar de entrada los arreglos:
string[] coffeTypes = new string[] {"1", "2"};
for(int i=0; i < coffeTypes.Length ; i++ )
Console.WriteLine(coffeTypes[i]);
Repasando ando
Console.WriteLine("Hello, DBZ Coffe!\n");
string[] coffeTypes;
float[] coffePrices;
coffeTypes = new string[] {"Expresso","Largo","Filtrado","Latte"};
coffePrices = new float[] { 1.2f, 1.5f, 5.0f, 5.5f };
for (int i = 0; i < coffeTypes.Length; i++)
Console.WriteLine("Product: " + coffeTypes[i] + " Coffe and the cost is: $" + coffePrices[i] + " US");
coffeTypes[1] = "DBZ";
Console.WriteLine(" \nHello, DBZ Coffe!\n");
for (int i = 0; i < coffeTypes.Length; i++)
Console.WriteLine("Product: " + coffeTypes[i] + " Coffe and the cost is: $" + coffePrices[i] + " US");
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Cafeteria!");
string[] coffeTypes;
float[] coffePrices;
coffeTypes = new string[] { "Express", "Largo", "Filtrado", "Latte" };
coffePrices = new float[] { 1.2f, 1.5f, 5.0f, 5.5f };
coffeTypes[1] = "Black";
for (int i = 0; i < coffeTypes.Length; i++)
{
Console.WriteLine(coffeTypes[i] + " Coffe : $" + coffePrices[i]);
}
Console.ReadLine();
}
}
¿Y si quiero una matriz o array de dos dimensiones?
int[,] array = new int[4, 2];
Crea un array de 2 columnas por 4 renglones de enteros.
Cuando se quiere modificar el menú, además de hacerlo por código, también se puede modificar directamente el nombre a Lungo en el New String de CoffeTypes.
Hice estos dos ejemplos usando foreach
Recorrer un arreglo con un foreach:
string[] videogames = new string[] { "Gears of War", "Halo", "Fortnite", "Resident Evil" };
foreach (string videogame in videogames)
{
Console.WriteLine($"The videogame is: {videogame}.");
}
Recorrer dos arreglos con un foreach:
Nota: Te va a pedir usar lo siguiente con este ejemplo:
using System.Linq;
string[] videogameNames = new string[] { "Gears of War", "Halo", "Fortnite", "Resident Evil" };
double[] videogamePrices = new double[] { 1000, 900.50, 850, 700.50 };
foreach (Tuple<string, double> videogame in videogameNames.Zip(videogamePrices, Tuple.Create))
{
Console.WriteLine($"The videogame is: {videogame.Item1}.");
Console.WriteLine($"The price is: {videogame.Item2}.");
Console.WriteLine("------------------------------");
}
Link donde obtuve información sobre cómo recorrer dos arreglos con un foreach: https://qastack.mx/programming/1955766/iterate-two-lists-or-arrays-with-one-foreach-statement-in-c-sharp
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
string[] coffeTypes;
float[] coffeValues;
coffeTypes = new string[] { "Express", "Largo", "Filtrado", "Latte" };
coffeValues = new float[] { 1.2f, 1.5f, 5.0f, 5.5f };
for (int i = 0; i < coffeTypes.Length; i++)
{
Console.WriteLine(coffeTypes[i] + " Coffe : $"+ coffeValues[i]);
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?