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

#26 Carlos M. Calvelo
09/09/2007 - 22:44 | Informe spam
Hola Octavio,

On 9 sep, 21:45, "Octavio Hernandez"
wrote:
Hola, Alfredo!

>> Sería mucho más lógico poner "project" o incluso "over".

Concretamente no sé si esas opciones se barajaron, pero si sé que el equipo
de C# estuvo trabajando sobre esa sintaxis durante un buen tiempo.
Yo personalmente no usaría "over", porque no es un verbo, y eso es lo que
hace falta en el lugar donde está ahora "select"; "project" efectivamente
sería adecuado, pero yo tampoco la usaría porque en inglés eso también es un
sustantivo (proyecto).Ž



Te recuerdo que proyección (projection) es una operación
del álgrebra relacional. Tanto como unión, select, producto, etc.
Y siendo este el caso me parece lo mas adecuado :)

Saludos,
Carlos
Respuesta Responder a este mensaje
#27 Octavio Hernandez
10/09/2007 - 00:12 | Informe spam
Hola, Carlos!

Te recuerdo que proyección (projection) es una operación...





Sí, en su momento lo estudié ;-)
Solo quería decir que "project" en inglés además de "hacer una proyección"
significa "un proyecto" y eso podría influir negativamente en la lectura del
código.

Saludos - Octavio
Respuesta Responder a este mensaje
#28 Carlos M. Calvelo
10/09/2007 - 01:28 | Informe spam
Hola otra vez Octavio,

On 10 sep, 00:12, "Octavio Hernandez"
wrote:
Hola, Carlos!

>> Te recuerdo que proyección (projection) es una operación...

Sí, en su momento lo estudié ;-)



:-) Perdón por el 'Te recuerdo' , no era mi intención... ya sabes!

Solo quería decir que "project" en inglés además de "hacer una proyección"
significa "un proyecto" y eso podría influir negativamente en la lectura del
código.




Si, ya te había entendido. Y yo solo quería decir que me parece
mas importante ser fiel a la terminología que nos ofrece la teoría,
que que alguno pueda confundir 'to project' con 'a project', sobre
todo en un contexto donde intuitivamente se espera que se utilize
un verbo (operador).

Pero, por otra parte, hacer una implementación totalmente fiel a
la teoría en cuando a terminología y no enteramente al modelo
sería algo bastante desconcertante y engañoso. :)

Saludos,
Carlos
Respuesta Responder a este mensaje
#29 Carlos M. Calvelo
10/09/2007 - 01:41 | Informe spam
Hola Alfredo,

On 7 sep, 15:18, Alfredo Novoa wrote:
On Fri, 7 Sep 2007 08:55:20 +0200, "Juan Diego Bueno"

wrote:
>Yo sinceramente, no veo tanto problema en hacer el select al revés, vamos,
>es tan sencillo como convertir una oración de activa a pasiva (yo diría que
>más sencillo aún, porque no tienes que cambiar nada, sino sólo invertir).

Es que en realidad está bastante mejor así. Si quieres proyectar una
expresión relacional sobre un conjunto de atributos, es más lógico
poner primero la expresión y después la lista de atributos. Igual que
para dividir un número entre dos ponemos primero el número que
queremos dividir y luego el dos.




Pues yo conozco lenguages (y tu también!) donde se dice:
(/ n 2) y no sin "lógica" para ello.

:-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#30 Leonardo
10/09/2007 - 01:55 | Informe spam

Pues yo conozco lenguages (y tu también!) donde se dice:
(/ n 2) y no sin "lógica" para ello.




Tendra que ver con el tipo de notación empleada; prefija en ese caso.

Ej:
http://boards4.melodysoft.com/app?ID 05AEDI0303&msg%


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