Nuevo en C# (nuevisimo)

05/09/2007 - 18:10 por Heberto Villavicencio | Informe spam
Saludos, soy un programador de VFP que esta tratando de migrar a .net
especificamente c# y la verdad no es nada facil, estaba revisando un codigo
que consegui por alli el cual esta escrito en c# y en VFP pero me surge una
duda que quizas me puedan ayudar:

en la instruccion:

from word in WordArray
where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Quien rayos es " word " es decir en todo el codigo no veo una referencia
anterior a el es decir, donde se crea es una clase un objeto una variable,
pareciere un objeto ya que tiene la propiedad lenght, pero no veo donde se
crea o de donde viene. Gracias por su ayuda:



Codigo completo:



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;



namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}



private void Form1_Load(object sender, EventArgs e)

{

this.Width = 1024;

this.Height = 768;

var q
from FileName in Directory.GetFiles(

"D:\\dd\\VB03_s2\\src\\vb\\bc\\", "*.*",

SearchOption.AllDirectories)

let ext = Path.GetExtension(FileName).ToLower()

where ext == ".cpp" || ext == ".h"

let LineArray = File.ReadAllText(FileName).Split(new char[]
{ '', '' })

from SingleLine in LineArray

let WordArray = SingleLine.Split(

new char[] { ' ', '\t', '*', ',', '.', '(', ')',
'<', '>', ':',';', '\'', '"' }

).TakeWhile(w => w != "//")

from word in WordArray

where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Browse(q);

}

private void Browse<T>(IEnumerable<T> seq)

{

var Gridview = new DataGridView();

Gridview.Width = this.Width;

Gridview.Height = this.Height;

this.Controls.Add(Gridview);

var p1 = new List<T>(seq);

Gridview.DataSource = p1;

this.Text = p1.Count.ToString();

Gridview.Dock = DockStyle.Fill;

Gridview.AutoResizeColumns();





}

}

}

Preguntas similare

Leer las respuestas

#1 Marcos Mellibovsky
05/09/2007 - 18:29 | Informe spam
Hola Heberto,
Eso es LinQ que actualemtne esta en Beta.
word representa el tipo de elemento que contiene la lista WordArray

Saludos
Marcos Mellibovsky
MCT MCTS MCSD.NET MCDBA MCSE...
Córdoba Argentina

"Heberto Villavicencio" wrote in message
news:
Saludos, soy un programador de VFP que esta tratando de migrar a .net
especificamente c# y la verdad no es nada facil, estaba revisando un
codigo que consegui por alli el cual esta escrito en c# y en VFP pero me
surge una duda que quizas me puedan ayudar:

en la instruccion:

from word in WordArray
where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Quien rayos es " word " es decir en todo el codigo no veo una referencia
anterior a el es decir, donde se crea es una clase un objeto una variable,
pareciere un objeto ya que tiene la propiedad lenght, pero no veo donde se
crea o de donde viene. Gracias por su ayuda:



Codigo completo:



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;



namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}



private void Form1_Load(object sender, EventArgs e)

{

this.Width = 1024;

this.Height = 768;

var q >
from FileName in Directory.GetFiles(

"D:\\dd\\VB03_s2\\src\\vb\\bc\\", "*.*",

SearchOption.AllDirectories)

let ext = Path.GetExtension(FileName).ToLower()

where ext == ".cpp" || ext == ".h"

let LineArray = File.ReadAllText(FileName).Split(new char[]
{ '', '' })

from SingleLine in LineArray

let WordArray = SingleLine.Split(

new char[] { ' ', '\t', '*', ',', '.', '(', ')',
'<', '>', ':',';', '\'', '"' }

).TakeWhile(w => w != "//")

from word in WordArray

where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Browse(q);

}

private void Browse<T>(IEnumerable<T> seq)

{

var Gridview = new DataGridView();

Gridview.Width = this.Width;

Gridview.Height = this.Height;

this.Controls.Add(Gridview);

var p1 = new List<T>(seq);

Gridview.DataSource = p1;

this.Text = p1.Count.ToString();

Gridview.Dock = DockStyle.Fill;

Gridview.AutoResizeColumns();





}

}

}


Respuesta Responder a este mensaje
#2 Javier Lozano
05/09/2007 - 19:46 | Informe spam
Hola

Yo ya pase por ese trance, y lo que te recomendaria es que te consigas un
buen libro y te tomes unas semanas en revisarlo y hacer los ejemplos que
indican. Para que te subas al caballo de .net tienes que abstraerte de tus
conocimientos de VFP, pues terminarias buscando similitudes en .Net para lo
acostumbrado en VFP y no usarias todas las capacidades de .Net. Un vez que
dominas al bronco, te llevara a dar un buen paseo por el mundo .Net, que por
cierto está lejos de ser el mundo ideal, pero todo evoluciona...

El libro que te recomendaria es el de Andrew Troelsen
http://www.apress.com/book/bookDisplay.html?bID90 (desafortunadamente la
mejor informacion acerca de .Net está en ingles)

Suerte

Javier Lozano
Lima-Peru


"Heberto Villavicencio" wrote in message
news:
Saludos, soy un programador de VFP que esta tratando de migrar a .net
especificamente c# y la verdad no es nada facil, estaba revisando un
codigo que consegui por alli el cual esta escrito en c# y en VFP pero me
surge una duda que quizas me puedan ayudar:

en la instruccion:

from word in WordArray
where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Quien rayos es " word " es decir en todo el codigo no veo una referencia
anterior a el es decir, donde se crea es una clase un objeto una variable,
pareciere un objeto ya que tiene la propiedad lenght, pero no veo donde se
crea o de donde viene. Gracias por su ayuda:



Codigo completo:



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;



namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}



private void Form1_Load(object sender, EventArgs e)

{

this.Width = 1024;

this.Height = 768;

var q >
from FileName in Directory.GetFiles(

"D:\\dd\\VB03_s2\\src\\vb\\bc\\", "*.*",

SearchOption.AllDirectories)

let ext = Path.GetExtension(FileName).ToLower()

where ext == ".cpp" || ext == ".h"

let LineArray = File.ReadAllText(FileName).Split(new char[]
{ '', '' })

from SingleLine in LineArray

let WordArray = SingleLine.Split(

new char[] { ' ', '\t', '*', ',', '.', '(', ')',
'<', '>', ':',';', '\'', '"' }

).TakeWhile(w => w != "//")

from word in WordArray

where word.Length > 0 && System.Char.IsLetter(word[0])

group word by word into gr

orderby gr.Count() descending

select new { dd = gr.Count(),gr.Key};



Browse(q);

}

private void Browse<T>(IEnumerable<T> seq)

{

var Gridview = new DataGridView();

Gridview.Width = this.Width;

Gridview.Height = this.Height;

this.Controls.Add(Gridview);

var p1 = new List<T>(seq);

Gridview.DataSource = p1;

this.Text = p1.Count.ToString();

Gridview.Dock = DockStyle.Fill;

Gridview.AutoResizeColumns();





}

}

}


Respuesta Responder a este mensaje
#3 principiante
05/09/2007 - 21:11 | Informe spam

Yo ya pase por ese trance, y lo que te recomendaria es que te consigas un
buen libro y te tomes unas semanas en revisarlo y hacer los ejemplos que
indican.



Pero sobre todo partir de la version 2005 primero porque parece que el
arranco por la version beta del 2008 y le puede resultar quizas mas
complicado que partir de la version actual.


Jose TH
Respuesta Responder a este mensaje
#4 Octavio Hernandez
06/09/2007 - 13:17 | Informe spam
Quien rayos es " word " es decir en todo el codigo no veo una referencia
anterior a el es decir, donde se crea es una clase un objeto una variable,
pareciere un objeto ya que tiene la propiedad lenght, pero no veo donde se
crea o de donde viene. Gracias por su ayuda:



Se trata de una EXPRESION DE CONSULTA (query expression).

"word" es un identificador que representa a cada uno de las cadenas de
WordArray (que por su nombre parece ser un array).

Esa sentencia:
- recorre todas esas cadenas
- filtra las que estén vacías o no empiecen con una letra
- hace grupos con las palabras que se repiten
- produce una secuencia de elementos que tienen cada una de las palabras y
la cantidad de veces que se repite, ordenada descendientemente por esa
cantidad de veces.

Slds - Octavio
Respuesta Responder a este mensaje
#5 principiante
06/09/2007 - 15:03 | Informe spam
Como curiosidad yo no entiendo por que los que inventaron LinQ invirtieron
el From y el Select y no los dejaron con el criterio de SQL (en el cual se
basan supongo). La cosa es no poner nada igual a lo que conocemos para que
no sea tan facil de aprender? ;-)
Si la razon es por el compilador o algo asi, por que el T-SQL no es igual
entonces?

Jose TH

"Octavio Hernandez" escribió en el mensaje
news:

Quien rayos es " word " es decir en todo el codigo no veo una
referencia
anterior a el es decir, donde se crea es una clase un objeto una
variable, pareciere un objeto ya que tiene la propiedad lenght, pero no
veo donde se crea o de donde viene. Gracias por su ayuda:



Se trata de una EXPRESION DE CONSULTA (query expression).

"word" es un identificador que representa a cada uno de las cadenas de
WordArray (que por su nombre parece ser un array).

Esa sentencia:
- recorre todas esas cadenas
- filtra las que estén vacías o no empiecen con una letra
- hace grupos con las palabras que se repiten
- produce una secuencia de elementos que tienen cada una de las palabras y
la cantidad de veces que se repite, ordenada descendientemente por esa
cantidad de veces.

Slds - Octavio


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida