Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

miércoles, 27 de marzo de 2013

Code Snippet: Pequeño ejemplo del uso de Linq.Any

Definición de Linq.Any extraído de esta web:
"El operador Any se utiliza para determinar si existe un elemento dentro de una secuencia que cumpla una condición expecífica."

Pero lo que yo necesitaba era un ejemplo concreto para saber si un elemento no existe en una colección usando Linq.Any.
El siguiente código muestra cómo usar Linq.Any para saber si un elemento existe o no en una colección. Es autoexplicativo:

using System;
using System.Linq;
using System.Collections.Generic;

namespace LinqPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            IEnumerable mis_nums = Enumerable.Range(0, 4);
            mis_nums = mis_nums.Select(c => c * 3);

            // mis_nums = {0, 3, 6, 9}

            if (mis_nums.Any(c => c != 7))
                Console.WriteLine("Existe al menos un número que es diferente de 7");

            if (mis_nums.Any(c => c == 9))
                Console.WriteLine("El 9 sí existe en la colección");
            else
                Console.WriteLine("El 9 no existe en la colección");

            if (!mis_nums.Any(c => c == 7))
                Console.WriteLine("El 7 no existe en la colección");
            else
                Console.WriteLine("El 7 sí existe en la colección");
          
            Console.Read();
        }
    }
}


El resultado es:

 

lunes, 11 de marzo de 2013

Visual C++: Cómo hacer que una ventana aparezca maximizada al cargarla

Para una aplicación tipo Win32 se debe buscar en la función Initinstance la línea donde dice ShowWindow:

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // Almacenar identificador de instancia en una variable global

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)  
      return FALSE;   


  // Visual C++ nos crea esta línea:
  // ShowWindow(hWnd, nCmdShow);

  // debemos reemplazarla por esta otra línea:
   ShowWindow(hWnd, SW_MAXIMIZE);
   UpdateWindow(hWnd);
   return TRUE;
}


Los valores del parámetro que se le pasa a la api ShowWindow están declarados en WinUser.h y son los siguientes:

#define SW_HIDE             0
#define SW_SHOWNORMAL       1
#define SW_NORMAL           1
#define SW_SHOWMINIMIZED    2
#define SW_SHOWMAXIMIZED    3
#define SW_MAXIMIZE         3
#define SW_SHOWNOACTIVATE   4
#define SW_SHOW             5
#define SW_MINIMIZE         6
#define SW_SHOWMINNOACTIVE  7
#define SW_SHOWNA           8
#define SW_RESTORE          9
#define SW_SHOWDEFAULT      10
#define SW_FORCEMINIMIZE    11
#define SW_MAX              11