100% encontró este documento útil (4 votos)
936 vistas

C#

El documento explica qué es la programación y los diferentes niveles de programación. La programación implica controlar la computadora mediante instrucciones y comandos. Existen diferentes lenguajes de programación orientados a controlar la computadora en distintos niveles, como bajo nivel, nivel medio e alto nivel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (4 votos)
936 vistas

C#

El documento explica qué es la programación y los diferentes niveles de programación. La programación implica controlar la computadora mediante instrucciones y comandos. Existen diferentes lenguajes de programación orientados a controlar la computadora en distintos niveles, como bajo nivel, nivel medio e alto nivel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 192

C#

Elber Calcina Condori


¿Qué es la Programación?

La esencia de la programación es controlar


el trabajo de la computadora en todos los
niveles, para ello el programador usa la
ayuda de "órdenes" y "comandos" y las
también conocidas como instrucciones de
programación

Los programadores son las personas


que crean estas instrucciones, los que
controlan las computadoras. Cada
lenguaje de programación está
orientado hacia el control de la
computadora en un nivel diferente.
¿Qué es la Programación?

Bajo Nivel –
Lenguaje Ensamblador
Máquina

Nivel Medio –
Nivel Interacción Sistema C…
con la Operativo
Computadora

C#, C++…
Alto Nivel –
Aplicaciones
Java, PHP,
Python…
Etapas en el Desarrollo del Software
Toma de Requisitos
Tipo de Arquitectura Planificación
Lenguaje deTecnologías Frameworks
Equipo Desarrollo
Plan de
Aplicación del Software Programación Server y BBDD Desarrollo Trabajo

Implementación

Fase de Pruebas

Despliegue y Explotación

Soporte Técnico
Toma de Requisitos
Lista de
Requisitos

Documentación
del Producto

Definición de la
documentación
por expertos

Definición del
proyecto para
los
programadores
Planificación
• Consola, Desktop
Tipo de Aplicación • Cliente-Servidor, Web
• Mobile …
• Una Capa
Arquitectura del • Multicapa
Software • SOA …
• C#
Lenguaje de • Java
Programación • Python …
• .NET, Java EE, LAMP…
Tecnologías • MySQL, SQL Server, Oracle…
• Hibernate, ADO .NET Entity Framework …
Número y • Diseñadores
Habilidades del • Analistas
• Programadores …
Equipo
• Etapas
Plan de Desarrollo • Recursos …

Otros
Implementación

Tareas definidas

Se escribe el código
Diseño
fuente en base a:

Arquitectura
Fase de Pruebas

Pequeños Balanceo entre la


Corrección de
programadas Implementación
Errores
automáticos y el Despliegue
Despligue y Explotación
Proceso más
lento y caro

Desarrollo del
Instalador
Soporte para el
Despliegue
Formación a
los Empleados

Listo para su USO


Soporte Técnico
• En el Desarrollo
• Uso Incorrecto
Errores • Configuración defectuosa

• Trato Directo con los Desarrolladores


• Formación específica en el Software
Técnicos • Diversos Especialistas
Soporte
Documentación
Visual Studio
Visual Studio
Principales Características. Parte 1
Sistema de
Tipo
Unificado

Soporta
Clases e
Patrones de
Interfaces
Pureza
Orientación
a
Objetos

Las Funciones
Propiedades,
se pueden
Métodos y
tratar como
Eventos
Valores
Principales Características. Parte 1

Soporta el Tipo
Lenguaje Type-Safe
Estático

Tipo
Seguro

Fuertemente Ejecución en
tipado Sandbox
Principales Características. Parte 1

Recolector de
Common Basura
Language
Gestión de Runtime Mejor Gestión
Memoria de Memoria
No Elimina los
Punteros
Principales Características. Parte 1

Soporte
Multiplataforma
Estructura básica de una aplicación
Imprimir en pantalla: Hello World
A destacar
Variables

Almacenamiento Duración igual a


Uso de la en Memoria del la Ejecución de la
Variable Runtime (Tiempo Aplicación, Clase
de Ejecución) o Método
Variables

Nombre

Se Componen Modificadores
de: de Acceso

Nombre debe
Variable comenzar por Tipo de Datos
una letra o “_”

No se puede
usar Palabras If, for, string …
Reservadas
Variables - Composición

Modificador de Acceso

private int numero;


Tipo de Dato: entero Nombre: numero
Variables – Modificadores de Acceso

Modificado Función
public Sin acceso restringido
protected Acceso limitado a las clases o tipos derivados de la clase en la que
está la variable
Internal El acceso se limita al código de un mismo ensamblado pero no
tendrá acceso en un código ensamblado diferente.
protected El acceso está limitado al conjunto actual o a los tipos derivados de
internal la clase contenedora.
Private El acceso está limitado a la clase en la que está la variable
Variables – Tipos de Datos
Numéricos

Struct bool
Valor:
System.Value
Type Estructuras
Enum personalizad
as

class
Tipo de datos
interface

delegate
Referencia:
System.Objec
t
object

string

array
Variables – Tipos Numéricos
Tipo Representa Rango Default
Value
bool Valor booleano True o False False
byte Entero sin signo de 8-bit 0 to 255 0
char Carácter Unicode 16-bit U +0000 to U +ffff '\0'
decimal Valores decimales de precisión de 128 (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 0.0M
bits con 28-29 dígitos significativos
double Tipo de coma flotante de doble precisión (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D
de 64 bits
float Tipo de coma flotante de precisión simple -3.4 x 1038 to + 3.4 x 1038 0.0F
de 32 bits
int Tipo entero con signo de 32 bits -2,147,483,648 to 2,147,483,647 0
long Tipo entero con signo de 64 bits -9,223,372,036,854,775,808 to 0L
9,223,372,036,854,775,807
sbyte Tipo entero con signo de 8 bits -128 to 127 0
short Tipo entero con signo de 16 bits -32,768 to 32,767 0
uint Tipo entero sin signo de 32 bits 0 to 4,294,967,295 0
Tipo entero sin signo de 64 bits
ulong 0 to 18,446,744,073,709,551,615 0
Tipo entero sin signo de 16 bits
ushort 0 to 65,535 0
Variables – Enum
class pedido
{
public int numero;
public DateTime FechaHora;
public int situacion;
}

Enum situacion

{
Abierto,
Facturado,
Cancelado
}
Variables – Tipos de Referencia
class

interface

delegate
Tipos de Referencia
Object

String

Array …
Constantes - Literales

No se pueden Modificar durante su


ejecución

Constantes
Pueden ser de cualquier tipo básico
- Literales

Se tratan de Igual manera que las


Variables
Constantes Enteros
Ejemplos

85 /* decimal */
0x4b /* hexadecimal */
0x 30 /* int */
30u /* unsigned int */
Decimal Prefijo 30l /* long */
30ul /* unsigned long */
Enteros 0X
Hexadecimal
(U)
Unsigned
Sufijo
(L) Long
Constantes Punto Flotante
parte fraccionaria

entero

2.525E1
parte exponencial
punto decimal

Ejemplos Ejemplos

25.25 100 /* Tiene tipo double


2.525E1 /* = 25.25 */ 100L /* Tiene tipo long double */
2525e-2 /* = 25.25 */ 100F /* Tiene tipo float */
-3.5e-3 /* = -0.0035 */
35E-4 /* = 0.0035 */
Constantes de Caracteres
Secuencia de Escape Significa
\a Campanilla (aviso) ‘x’ char
\b Retroceso
‘\t’ Tabulación horizontal
\f Formfeed
‘\u02C0’ Carácter universal
\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\v Tabulación vertical
\' Comilla simple
\" Comilla doble
\\ Barra diagonal inversa
\? signo de interrogación literal
ooo de \ Carácter ASCII en notación octal
hh de \ x Carácter ASCII en notación
hexadecimal
hhhh de \ x Carácter Unicode en notación
Constantes de Cadena
“” o @”” Ejemplo
“hola, que tal?“

Caracteres “hola, \
que tal?“
simples
Cadenas “hola, " “que" “tal?“

Secuencias de @“hola, que tal?"


escape
Caracteres
universales
Definir una Constante

const <tipo_dato> <nombre_constante> = valor;


Flujos de Ejecución – Parte I

if (expresion booleana) if … else


{
// código 1
}
else
{
// código 2
}
Flujos de Ejecución – Parte I
if (expresión booleana 1)
{
// código 1
if … else if … else
}
else if (expresión booleana 2)
{
// código 2
}
else
{
// código 3
}
Ejemplo
• C#1-
• C#2- programa que pida una edad y muestre como resultado en que
etapa de la vida se encuentra.
Periodo prenatal Desde el momento de la concepción
hasta el nacimiento.
Periodo primera infancia Desde el nacimiento a los 3 años
Periodo de la niñez temprana o De los 3 años a los 6
preescolar
Periodo de la niñez intermedia o escolar De los a los 12 años
Periodo de la adolescencia De los 12 a los 18 años
Periodo de la juventud Delos 20 a los 35 años
Periodo de la madurez De los 35 a los 50 años
Periodo de la adultez De los 50 a los 60 años
Periodo de la vejez o tercera edad De los 65 en adelante.
• C#3-Calcular el salario neto de un empleado con las siguientes
consideraciones:
• Salario Bruto = Ingresado por teclado
• AFP = 13%
• Bonificación: si el salario bruto super los 2000 realizar una bonificación de
13% caso contrario de 10% todo esto debe de trabajarse con el salario bruto
• C#4-
Flujos de Ejecución – Parte I

Operador Ternario

expresión booleana? código 1: código 2;


Ejemplo
Flujos de Ejecución – Parte II
switch (variable o valor)
{
Switch … Case
case valor1:
// código 1
break;

case valor2:
// código 2
break;

}
Flujos de Ejecución – Parte II
switch (variable o valor)
{
case valor1:
case valor2: Switch … Case
case valor3:
// código 1
break;

case valor4:
case valor5:
case valor6:
// código 2
break;
}
Flujos de Ejecución – Parte II
switch (variable o valor)
{

case valor1: Switch … Case


// código 1
break;
Operador Default
case valor2:
// código 2
break;

default:
// código 3
break;
}
Ejemplo:
Estructuras de Repetición– Parte I

While
while (condición)
{
//bloque de código
}
• C#5-Desarrollar un programa que permita la carga de 10 valores por
teclado y nos muestre posteriormente la suma de los valores
ingresados y su promedio.

• C#6-Una planta que fabrica perfiles de hierro posee un lote de n


piezas.
Confeccionar un programa que pida ingresar por teclado la cantidad
de piezas a procesar y luego ingrese la longitud de cada perfil;
sabiendo que la pieza cuya longitud esté comprendida en el rango de
1,20 y 1,30 son aptas. Imprimir por pantalla la cantidad de piezas
aptas que hay en el lote
Estructuras de Repetición– Parte I

do do … while
{

//bloque de código

} while (condición);
Estructuras de Repetición– Parte I
int i = 1;

while (i < 10)


Break
{
if(i == 5)
break;

Console.WriteLine(i);
i++;
}
Estructuras de Repetición– Parte I
int i = 0;
while (i < 10) Continue
{
i++;
if (i % 2 == 0)
continue;

Console.WriteLine(i);
}
Console.ReadKey();
Estructuras de Repetición– Parte II

For
for (inicializador; condición; iterador)
Bloque de Código
• C#7-Programa que muestre la tabla de multiplicar
Estructuras de Repetición– Parte II

Foreach
foreach (tipo elemento in colección)
{
//bloque de código
}
Ejemplo
Arrays
Valor

25 78 21 31 25 17 82 63 54 42
0 1 2 3 4 5 6 7 8 9

Índice
Arrays – Declaración

tipo[] nombreArray = new tipo[tamanho_array];

Ejemplo

Int [] array = new int [10];


Arrays – Inserción de datos
Durante la declaración
//cantidad de elementos explícita
int[] array1 = new int[5] { 1, 3, 7, 12, 8 };

//cantidad de elementos implícita


int[] array2 = { 1, 3, 2, 7, 6 };
Arrays – Inserción de datos
Inserción mediante índice

int[] array = new int[50];


for (int i = 0; i < 50; i++)
{
array[i] = i + 1;
}

array[0] == 1, array[1] == 2, array[2] == 3 …


Arrays – Acceso a los datos

Console.WriteLine (array [10]); IndexOutOfRangeException

1 2 3 4 5 6 7 8 9 10 11
0 1 2 3 4 5 6 7 8 9 10
X

Int [] array = new int [10];


Arrays – Iteraciones sobre los arrays
For While
for (int i = 0; i < 10; i++) int i = 0;
{ while (i < 10)
Console.WriteLine(array[i]); {
} Console.WriteLine(array[i]);
i++;
}
Foreach
Interface

foreach (int x in array)


{ IEnumerable

Console.WriteLine(x); IEnumerable <T>

}
Strings

Asignar una constante de cadena a una string nombre = “Cadena de Texto";


variable de cadena
System.String

Al usar un constructor de la clase String

Creación de una
Mediante el operador de concatenación (+)
Cadena

Propiedad o Método que devuelve cadena

Convertir objeto o valor a cadena


Strings - Substring

string nombre = "Alexandre Gonzalez";


string apellidos = nombre.Substring (10, 8);

A L E X A N D R E G O N Z A L E Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Strings - IndexOf
string nombre = "Alexandre Gonzalez - Programando en C #";
int numero = nombre.IndexOf ("Programando");

// Retornará 22

// A partir del índice 5


int numero = nombre.IndexOf ("Gonzalez", 5);
A L E X A N D R E G O N Z A L E Z - P R O G R A M A N D O E N C #
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 …. … … … … … … … … … … … … …
Strings - ToUpper y ToLower

string nombre = “Juan Rodriguez";


string minusculas = "";
cadena mayusculas = "";

mayusculas = nombre.ToUpper ();


minusculas = nombre.ToLower ();
Strings - TrimStart, TrimEnd y Trim

string nombre = " RODRIGUEZ ";


nombre = nombre.TrimEnd();
nombre = nombre.TrimStart();
nombre = nombre.Trim();
Strings - PadLeft y PadRight

string nombre = "Gonzalez";


nombre = nombre.PadRight(10, 'XX’);
// "GonzalezXX"
string codigo = "123";
codigo = codigo.PadLeft(6, '0’);
// "000123"
Strings - String.Join y String.Split

string linea = "Prueba, 10, 20, 10/06/2018";


string[] campos = linea.Split(new char[] { ',' });
Console.WriteLine(campos[0]);
Console.WriteLine(campos[1]);
Console.WriteLine(campos[2]);
Console.WriteLine(campos[3]);

string lineaNueva = String.Join(";", campos);


Console.WriteLine(lineaNueva);
Console.ReadKey();
Strings - String.Format

string prueba = String.Format ("Voy a poner el {0} aquí.", "parámetro");

string prueba = String.Format("Formato de la cadena con un {0} parámetro. Ahora son las {1}. Valor numérico: {2}", 1, DateTime.Now, 15.5);

Console.WriteLine(prueba);
Console.ReadKey();
Programación Estructurada vs
Programación Orientada a Objetos

Orientada a
C#, Java, etc..
Objetos
Programación
C, Pascal,
Estructurada
etc…
Programación Estructurada vs
Programación Orientada a Objetos
Método
Procedimiento

Datos Objeto …
Procedimiento
Método
Programación
Programación Orientada a
Datos Globales Procedimiento
Estructurada Objetos
Método


Datos Objeto …

Procedimiento Método
Programación Estructurada vs
Programación Orientada a Objetos

Peor
Más orientado a Rendimiento
bajo nivel

Aplicaciones de
Es el paradigma
Sistemas más empleado
integrados Programación C# y Java, sus actualmente
Programación C: su principal Orientada a principales
Estructurada exponente Objetos exponentes
Ejecución Reutilización de
Secuencial Código

Generalmente, Acerca el Mundo


Mejor Real al Mundo
Rendimiento Virtual
Los 4 Pilares en la Programación Orientada a Objetos

Abstracción

Polimorfismo POO Encapsulami


ento

Herencia
Orientación a Objetos - Abstracción
Problema Simple 1

Problema Complejo 1 Problema Simple 2

Problema Simple X …
Abstracción
Problema Simple 1

Problema Complejo 2 Problema Simple 2

Problema Simple X…
Programación Orientada a Objetos - Abstracción

Solución 1 Importante

Problema 1 Solución 2 Identidad Única


(Espacio de Nombres)
Solución N
Características del
Solución 1 Objeto
(Propiedades/Atributos)

Problema 2 Solución 2 Acciones a Ejecutar


(Métodos/Acciones)

Solución N
Programación Orientada a Objetos - Encapsulación

Clase

MODIFICADORES DE ACCESO

Métodos e Public
instancias públicas Private
Protected
protected internal
internal

Métodos e
instancias privadas
Programación Orientada a Objetos - Encapsulación

Valor Real

GET
Mi Valor
SET

La mayoría de los lenguajes OO implementan el encapsulado basado en propiedades privadas


vinculadas a métodos especiales llamados GET y SET, que devuelven establecen el valor de la
propiedad respectivamente.
Programación Orientada a Objetos - Herencia

Objeto 1

Objeto 2
Objeto N
Objeto 3

Object
Objeto …
Objeto Base

Objeto N
Programación Orientada a Objetos - Polimorfismo

En una Tienda: Como consumidor

El polimorfismo:
consiste en la
En un Transporte: Como pasajero modificación del
Comportamiento funcionamiento interno
de una Persona de un método heredado
de un objeto padre
En el Trabajo: Como Empleado

En la Familia: Como Padre/Madre/Hij@


Programación Orientada a Objetos - Polimorfismo

Virtual
C#
Electrodoméstico Override

+Conectar(): boolean
Java @override

Televisión Heladera
+Conectar(): boolean +Conectar(): boolean
Principales Ventajas de la POO
Reutilización de
Código

Mejor lectura y
mantenimiento
1 Elemento Acercar la del código
programación al
1 Objeto mundo real Mejor creación
de Bibliotecas

Peor
Rendimiento
Ejemplo – 4 pilares
• Objeto Persona:
• que es una persona?
• Es un ser vivo del mundo real que interactúa con su entorno natural
• Características?
• Nombre, ojos, boca nariz
• Comportamiento?
• Habla, camina corre, bebe.
Creando clases
• Declarar una clase

Class <nombreClase>
{
<atributos>
<métodos o funcionalidades>
}
• Declarar una atributo

<tipoatributo><nombreatributo>;
Creando clase y atributos
Asignando valores y atributos
• Recuerde que en el
área de la clase
solo se realizan
asignaciones, no se
puede realizar
operaciones.
• Las operaciones se
realizan en los
métodos de la clase
• Una clase puede
tener como
atributo otra clase
Métodos
• Es un conjunto de instrucciones a las que se asocia un nombre de
modo que si se desea ejecutarlas basta referenciarlas a través dicho
nombre en vez de tener que escribirlas.
• Dentro de estas instrucciones es posible acceder con total libertad a
la información almacenada en los campos pertenecientes a la clase
dentro de la cual se definió el método
• Los métodos permiten realizar las acciones los atributos de las clases,
estos pueden devolver un determinado valor al finalizar su ejecucion,.
Sintaxis
• Declarar un método

<tipoDevolver> <nombreMétodo>(<parámetros>)
{
<instrucciones>
}

Parámetros: son valores externos que no conocemos que el musuario


necesita entrar
Ejem.
Queremos calcular la cantidad de personas que nacieron después de un
año determinado (dado).
Modificadores
• Son palabras que se le colocan delante de la declaración de atributos
y métodos para indicar desde que código se puede acceder a ellos.
• Entiéndase por acceder el echo de usar su nombre para cualquier
cosa menos definirlo (ejm: llamar a una función, leer o escribir su
valor si es un campo, crear objetos o heredar de el si es una clase)
• Por defecto se considera que los miembros de un tipo de datos solo
son accesibles desde el código situado dentro de la definición del
mismo, aunque este puede cambiarse precediendo de uno de los
siguientes modificadores
• Los modificadores se utilizan para las propiedades y también para los
métodos.
Asignando modificadores - atributos
Asignando modificadores – métodos
• Los métodos se llaman desde clase externas a la clase donde se
definen, la definimos como public. Pero en caso de un método que se
ejecute dentro de la clase persona y no necesitamos llamarlo desde
otro lado, la definimos como private
• También se le puede poner modificador de accesibilidad a la clase
como public, el que se usa generalmente. Para poder declarar el
objeto de la clase que tenemos defina en cualquier parte de la
aplicación
• Internal para acceder desde el ensamblado de la aplicación y por
defecto
Creando objetos
• Crear objetos
New <nombreTipo> (<parámetros>)
Llamando métodos
• Llamar método dentro de una clase

<nombreMétodo>(<valoresParámetros>)

• Llamar método de un objeto creado

• <objeto>.<nombreMétodo>(<valoresParámetros>)
Dentro de la misma clase
Llamar método de un objeto creado
Trabajando con parámetros
• Programa que identificar si una persona es es mayor de edad o
menor de edad, así mismo debe mostrar el nombre y la edad.
• Se debe crear la clase persona con los siguientes atributos:
• Nombre
• edad
• Asignar el dato “Pedro picapiedra” a la propiedad nombre y edad 25.
Creando la clase, propiedades y métodos
Llamando métodos
Otro
Continua-otro
Ejemplo – 4 pilares
• Objeto Persona:
• que es una persona?
• Es un ser vivo del mundo real que interactua con su entorno natural
• Caracteristicas?
• Nombre, ojos, boca nariz
• Comportamiento?
• Habla, camina corre, bebe.
Creando Clase
Definir nuestre Get y Set
Constructor
• Son métodos especiales que se define como miembros de esta y que
contienen código a ejecutar cada vez que se crea un objeto de esa
clase.
• Este código suele usarse para asignarle valor a los atributos de la clase
sobre todo cuando el valor de estos no es constante o incluya accione
mas allá de una asignación de valores.
• La ejecución del control siempre e inicia automáticamente después
de haberse inicializado todo los campo del objeto ya sea con los
valores iniciales que se hubiese especificado en su definición o
dejándolos con el valor por defecto de su tipo.
Sintaxis
<modificando><nombre clase>(<parámetros)>)
{
<Codigo>
}
Constructores
Creando Clase
Definiendo get y set con constructores
Colecciones
• En muchas aplicaciones se desea poder crear y administrar grupos de
objetos relacionados. Existen dos formas de agrupar objetos:
mediante la creación de matrices de objetos y mediante la creación
de colecciones de objetos.
• Las colecciones proporcionan un método más flexible para trabajar con
grupos de objetos. A diferencia de las matrices, el grupo de objetos con el
que trabaja puede aumentar y reducirse dinámicamente a medida que
cambian las necesidades de la aplicación. Para algunas colecciones, puede
asignar una clave a cualquier objeto que incluya en la colección para que
pueda recuperar rápidamente el objeto con la clave asignada.
• Una colección es una clase, de modo que antes de poder agregar
elementos a una nueva colección, debe declararla.
• Si su colección se limita a elementos de solo un tipo de datos, puede
utilizar una de las clases en el espacio de
nombres System.Collections.Generic. Una colección genérica cumple la
seguridad de tipos para que ningún otro tipo de datos se pueda agregar a
ella. Cuando recupera un elemento de una colección genérica, no tiene que
determinar su tipo de datos ni convertirlo.
• .NET Framework
• Conjunto de herramientas y clases que soporta el desarrollo de aplicaciones
con c#
• Entre las varias clases del framework de uso frecuente, están las colecciones,
que implementan diferentes estructuras de datos tales como:
• Listas
• Pilas
• Filas
• Tablas hashs
Colecciones
Queue

Stack

HashTable
No Genéricas
(System.Collection)
Colecciones BitArray
Genéricas
SortedList

ArrayList
Colecciones - SortedList

No necesita intervención
Tipos Básicos: int o string
Pares
SortedList
Clave/Valor Tipos Personalizados:
Objeto IComparer Es necesario proporcionar en
el constructor un objeto

La colección SortedList almacena los pares clave-valor en el orden ascendente de la clave de forma
predeterminada. La clase SortedList implementa interfaces IDictionary e ICollection, por lo que se puede
acceder a los elementos tanto por clave como por índice.
SortedList – Principales Propiedades
Capacity Número máximo de elementos que se pueden insertar en la colección

Count Valor de Tipo entero devuelve la cantidad de elementos que


tenemos actualmente en la lista

Valor booleano, cuando es cierto indica que la lista no puede tener


IsFixedSize elementos agregados o eliminados, solo puede modificar elementos
Principales existentes
Propiedades
IsReadOnly
Valor Booleano, propiedad indica que la colección se puede modificar

Keys Propiedad de solo lectura, que nos devuelve una coleccione con las claves que
contiene la lista

Value Propiedad es una lista de tipo ICollection que contiene los valores de la lista (la
colección está formada por los pares clave/valor)
SortedList – Principales Métodos
Recibe 2 parámetros del tipo objetc que se debe insertar en la colección
Add formando un par clave/valor

Borra los elementos de la lista, quitando todo los elementos existentes


Clear de la misma

Recibe como parámetro un objeto que se encuentra en la lista de claves


Contains y devuelve true si existe la clave caso contrario falso

Funciona exactamente como el método contains, devuelve un valor


ContainsKey booleano indicando si existe una clave que es pasada como parámetro
de la lista
Principales Similar a los métodos contains con la diferencia que el objeto que
ContainsValue pasamos como parámetro se busca en la lista de valores y no en la lista
Métodos de claves
Copia los valores de la collecion a un método unidimensional, que seria
CopyTo el primer parámetro indicando desde un cierto índice que ese es
segundo parámetro que lo pasamos en este método

Recibe un parámetro de tipo entero y nos devuelve un objeto


GetByIndex representando el valor contenido en la posición indicada

Nos devuelve la clave contenida en la posición pasada como parámetro y


GetKey es un valor entero

Este método nos devuelve una colección del tipo Ilist que contiene toda
GetKeyList las claves de la colección de la lista.
GetValueList Devuelve una colección de objetos de tipo ilist, pero conteniendo
los valores y no las claves como en el caso de GetKeyList

Podemos obtener el índice del elemento en la lista de la clave que


IndexOfKey se pasa como parámetro

IndexOfValue Es similar al indexofkey donde el retorno des este método es el


índice de la lista del elemento cuyo valor pasamos como parámetro

Recibe como argumento una clave y quita de la lista ese elemento


Remove que hemos pasado como parámetro

Quitar de la lista el elemento cuyo índice se informa como


RemoveAt argumento del método

Recibimos dos argumentos un índice de tipo entero y un objeto de


SetByIndex tipo object, el valor del elemento en la posición indicada pasa hacer
el objeto pasado como segundo argumento
Ejemplo
• Internamente, SortedList
mantiene dos matrices
object [], una para las
claves y otra para los
valores.
Ejemplos
Ejemplo
System.Collections
IEnumerable
System.Collections.Stack
IEnumerator
System.Collections.Queue
ICollection
System.Collections.BitArray
System.Collections.Specialized.Na
meValueCollection
Espacio de Nombres System.Collections.SortedList
Interfaces
System.Collections
System.Collections.Hashtable
IDictionary
System.Collections.Specialized.Hyb
ridDictionary
System.Collections.Specialized.List
Dictionary
System.array

Ilist System.Collections.ArrayList
System.Collections.Specialized.Stri
ngCollection
Colecciones - Queue y Stack

Cola Clase Queue


Estructuras
Comunes
Computación
Pila Clase Stack
Colecciones - Queue y Stack
FIFO
(First-In, First Out)
1 2 3

1 2 3

3 2 1
LIFO
(Last-In, First Out)
Colecciones - Queue
Propiedades Count

Enqueue
Clase
System.collection Queue Dequeue
(FIFO)
Peek

Métodos TrimToSize

Clear

Contains Capacidad Inicial

Constructor Icollection
Capacidad Inicial +
Factor Expansión
Ejemplo
Colecciones - Stack
Propiedades Count

Push
Clase Stack
System.collection
(LIFO) Pop

Peek
Métodos
Clear

Contains
Icollection
Constructor
Capacidad Inicial
Ejemplo
Ejemplo
Colecciones - ArrayList

Se expande al
Agregar un
Elemento
Almacenamiento
ArrayList
Dinámico
Se Contrae al
Quitar un
Elemento
Colecciones - ArrayList
Método Descripción
Add (object) agrega un elemento al final de la lista.
AddRange (ICollection) agrega a la lista los elementos de una colección pasada como parámetro.
AsParallel () devuelve un ParallelQuery que utiliza varios procesadores, si existen, para efectuar consultas a los elementos con Linq (incluso con lambda expressions).

AsQueryable () devuelve un objeto IQueryable, en el que es posible efectuar consultas con Linq, incluso usando expresiones lambda.
BinarySearch (object) busca el objeto pasado como parámetro en la lista, devolviendo su índice, si existe.
BinarySearch (object, IComparer) busca el objeto parámetro en la lista, considerando la comparación hecha por IComparer. En el caso de clases propias, es necesario definir un IComparer adecuado.

Cast <Tipo> () convierte los elementos de la lista al tipo definido, devolviendo una colección con los nuevos elementos.
Clear () quita todos los elementos de la lista.
Clone () devuelve una copia de ArrayList.
Contains (object) devuelve true si el objeto pasado como parámetro existe en la lista, de lo contrario, devuelve false. Copiar una cierta cantidad (cuarto parámetro) de elementos de la
lista, a partir de un índice (primer parámetro), a un Array (segundo parámetro) de otro índice en esa matriz (tercer parámetro).

GetEnumerator () devuelve una colección IEnumerator con los elementos de la lista, sin embargo, en IEnumerator, los elementos no se pueden cambiar, sólo leídos.

GetRange (int, int) devuelve un ArrayList que contiene una cierta cantidad (segundo parámetro) de elementos del índice especificado (primer parámetro).
IndexOf (object) esta función devuelve el índice (cero-based) del objeto buscado en la lista, si existe.
Insert (int, object) el método Insert agrega un elemento en la lista en una posición determinada. Los elementos después de este punto se desplazan una posición adelante.

InsertRange (int, ICollection) similar a Insert, pero inserta una colección de elementos en lugar de un solo elemento.
LastIndexOf (objeto) devuelve el índice de la última instancia del objeto buscado en la lista, si el objeto no se encuentra, el resultado es -1 (así como en la mayoría de los métodos de
búsqueda).
OfType <Tipo> () devuelve una colección con los elementos de la lista que son del tipo especificado. Esta lista resultante, sin embargo, es sólo para la visualización, sus elementos no se
pueden cambiar.
Remove (object) si se encuentra el objeto pasado como parámetro, se quita de la lista.
RemoveAt (int) quita de la lista el elemento de posición indicado en el parámetro.
RemoveRange (int, int) quita una cantidad de elementos (segundo parámetro) del índice indicado (primer parámetro).
Reverse () invierte el orden de los elementos.
SetRange (int, ICollection) inserta los elementos de una colección pasada como parámetro para el ArrayList desde una posición determinada. Los elementos existentes inicialmente en este rango
de valores se reemplazan por lo que se han agregado.

Sort () ordena los elementos en orden ascendente. Si los elementos son de una clase específica cuya comparación no es explícita, es necesario utilizar una sobrecarga de ese
método que recibe un objeto IComparer.
ToArray () devuelve un Array con los objetos de la lista.
Colecciones - Hashtable

Se expande al
Agregar un
Elemento
Almacenamiento
Dinámico
Se Contrae al
Quitar un
Hashtable Elemento

Basado en La Clave es un
Clave/Valor Objeto
Colecciones - Hashtable
Ejemplo

Hashtable config = new Hashtable();

//Valor del tipo Int32


config[“VERSION”] = 1;

//Valor del tipo String


config[“DIRECTORIO”] = “C:\\System”;

//Valor del tipo DateTime


config[“VALIDEZ”] = DateTime.Today.AddMonths(1);
Hashtable - Propiedades

Count

Propiedades Keys

Value
Hashtable - Métodos
Add (object key, object value)

AsQueryable ()

Cast ()

Clear ()
Métodos
Clone ()

Contains (object key) y ContainsKey

ContainsValue (object value)

Remove (object key)


Colecciones - BitArray

True = 1
Colección
BitArray
de Bits
False = 0
BitArray - Propiedades

Count
(Sólo Lectura)
Propiedades
Length
BitArray - Métodos
And (BitArray value)

Get (int index)

Not ()

Or (BitArray value)
Métodos
Set (int index, bool value)

SetAll (bool value)

Xor (BitArray value)

Clone, AsQueryable, CopyTo, …


Trabajar con Archivos - Namespace I-O
Trabajar con Archivos - Namespace I-O

Flujo de Entrada Flujo de Salida

A1 A2 A3 A4 A5 A1 A2 A3 A4 A5
System.IO - Clases
BinaryReader • Lee datos primitivos de una secuencia binaria

BinaryWriter • Escribe datos primitivos en formato binario

• Es un almacenamiento temporal para una


BufferedStream secuencia de bytes

Directory • Ayuda a manipular una estructura de directorio

DirectoryInfo • Se utiliza para realizar operaciones en directorios

DriveInfo • Proporciona información de las unidades de disco

File • Ayuda en la manipulación de archivos

FileInfo • Se utiliza para realizar operaciones en archivos


System.IO - Clases
• Se usa para leer y escribir en cualquier ubicación
FileStream de un archivo
• Se utiliza para acceso aleatorio a datos
MemoryStream almacenados en la memoria
• Realiza operaciones en la información de la ruta de
Path un archivo
• Se utiliza para leer caracteres de una secuencia de
StreamReader bytes

StreamWriter • Se utiliza para escribir caracteres en una secuencia

StringReader • Se utiliza para leer desde un buffer de cadena

StringWriter • Se utiliza para escribir en un buffer de cadena


FileStream
Estructura Básica de FileStream

FileStream <nombre_objeto> = new FileStream( <nombre_archivo>, <Enumerador FileMode>,


<Enumerador FileAccess>, <Enumerador FileShare>);

Ejemplo de FileStream

FileStream F = new FileStream("ejemplo.txt", FileMode.Open, FileAccess.Read, FileShare.Read);


FileStream - Parámetros
FileMode FileAccess FileShare

Append Read Inheritable

Create ReadWrite None

CreateNew Write Read

Open ReadWrite

OpenOrCreate Write

Truncate
Ejemplo
Operaciones Básicas con Archivos y Directorios

Lectura
System.IO File
Escritura
Ejemplo
Operaciones Básicas con Archivos y
Directorios
Ejemplo – eliminar archivo
Ejemplo – Eliminar directorio
Renombrar archivo
Renombrando directorio
Introducción a LINQ

Language-Integrated Query

3.0
• Language Integrated Query. LINQ extiende el lenguaje a través de las
llamadas expresiones de consulta, que son parecidas a las sentencias
SQL y pueden ser usadas para extraer y procesar convenientemente
datos de arrays, clases enumerables, documentos XML, bases de
datos relacionales y fuentes de terceros.
• Es una de las funcionalidades muy importantes dentro del .NET
Framework
Introducción a LINQ - Tipos
LINQ a Objetos Colecciones

LINQ a Entidades Entity Framework

LINQ a SQL SQL Server


Tipos de
LINQ
LINQ a XML XML

LINQ a DataSet ADO.NET

Implementación Iqueryable Otras Fuentes de Datos


Introducción a LINQ - Arquitectura
Introducción a LINQ – Sintaxis Básica
Variable de resultado Variable de rango

Secuencia de Colección IEnumerable o IQueryable

var resultado = from s in pruebaList


where s.Contains (“Tutoriales”)
select s;

Operadores de Consulta Expresiones de Condición


Introducción a LINQ - Características
Detección de Errores en Tiempo de Compilación

Soporte Intellisense

Escritura Ágil

Facilita la Depuración

Relacionar dos tablas es sencillo


Características de LINQ
Una Sintaxis  Varias Fuentes de datos

Extensible

Consulta nuevas fuentes de datos

Unir varias fuentes de datos en una consulta

Conversión de tipos datos, por ejemplo, SQL to XML


LINQ To Object
Se usa para hacer consulta a arrays y colecciones

Mayor
Normalmente Legibilidad
devuelve
IEnumerable
Mejor Filtrado
Ofrece ventajas
LINQ To Object sobre sobre
“foreach”
Agrupamiento
Consultas
Compactas y
Portables
Ordenamiento
Ejemplo= LINQ a Objetc
Ejemplo
Ejemplo
LINQ To SQL

from c in db.Tabla
where c.Nombre == “Luis Antonio”
APLICACIÓN
select c;

Consulta LINQ Objetos

LINQ To SQL

Consulta SQL Filas


SELECT Nombre FROM Tabla WHERE
Nombre = ‘Luis Antonio’

SQL Server
Creamos DB y Tabla en SQL Server
Agregar Elemento – LINQ to SQL
Realizar conexión con la base de datos
LINQ To SQL
Envía los
Lo convierte e
resultados en
forma de objeto
forma de
para el usuario
dataread

Consulta API LINQ To Proveedor Proveedor


LINQ To SQL SQL LINQ To SQL de ADO

Solicita Convierte la Se ejecuta la


ejecución de consulta en consulta
consultas en Transact SQL
nombre de una
aplicación
Ejemplo
Insertando registro
Actualizar registro
Eliminando registro
Listar registros
LINQ To XML

Provee
• Depuración
Acceso Todas
Integrado en • Verificación en
LINQ To XML Funcionalidades Tiempo de
.NET Framework
LINQ Compilación
• Tipado Fuerte
•…

Operadores y
Consulta estándar
Interfaz de programación
LINQ To XML
XAttribute XName

XNamespace
XCData

XNode
XComment

XNodeDocumentOrderComparer
XContainer

XNodeEqualityComparer

Clases LINQ To XML Xdeclaration Clases LINQ To XML


XObject

Xdocument
XObjectChange

XDocumentType
XObjectChangeEventArgs

Xelement
XObjectEventHandler

XText XProcessingInstruction
Ejemplo
Añadiendo elementos
Eliminado elemento

También podría gustarte