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

#31 Alfredo Novoa
10/09/2007 - 01:58 | Informe spam
Hola Octavio,

On Sun, 9 Sep 2007 21:45:48 +0200, "Octavio Hernandez"
wrote:

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.



Pues no se nota nada. Al final fusilaron la de SQL (la especialidad de
Hejlsberg?}:) y luego movieron el Select al final a lo bruto para que
les funcionase Intellisense sin pensar en que eso le hacía perder a la
palabra select el muy poco sentido que ya tenía.

SQL fue diseñado por gente sin experiencia en diseño de lenguajes,
pero por lo menos nunca lo negaron.

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";



A mi me gusta más project (y de hecho es lo que uso), pero tampoco le
veo problema a over que es lo que usa D4.

"project" efectivamente
sería adecuado, pero yo tampoco la usaría porque en inglés eso también es un
sustantivo (proyecto).Ž



Y select también es un adjetivo: selecto. Según esa regla no podríamos
usar casi nada.

No estaría mal que algún día viéramos una explicación detallada de las
decisiones que se tomaron durante el diseño de C# 3 (como hizo Sutter sobre
C++/CLI).



Por lo que leo en las entrevistas cada vez estoy más convencido de que
las cosas buenas de LinQ salieron de chiripa y que esta gente sabe
realmente poco sobre bases de datos.

Por ejemplo mira que burrada suelta Meijer aquí:

There's a lot of very interesting theory about using monads or monoids
as the basis for query languages instead of relational algebra [the
basis for SQL][sic.].

http://reddevnews.com/news/devnews/...itorialsid7

Si LinQ parece una chapuza creo que la explicación más sencilla es que
es una chapuza.


Saludos
Alfredo
Respuesta Responder a este mensaje
#32 Alfredo Novoa
10/09/2007 - 02:44 | Informe spam
Hola Carlos,

On Sun, 09 Sep 2007 16:41:34 -0700, "Carlos M. Calvelo"
wrote:

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



Pero la n sigue estando delante del 2 :-)

Si fuese como SQL sería:

DIVIDE 2 n


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

On 10 sep, 02:44, Alfredo Novoa wrote:
Hola Carlos,

On Sun, 09 Sep 2007 16:41:34 -0700, "Carlos M. Calvelo"

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

Pero la n sigue estando delante del 2 :-)

Si fuese como SQL sería:

DIVIDE 2 n




Cierto. No debería haber introducido lo de la notación
prefija porque solo se trataba del orden de los operandos.

Saludos,
Carlos
Respuesta Responder a este mensaje
#34 Rafael
10/09/2007 - 13:37 | Informe spam

Uno lo compara con el que uno conozca previamente, eso es inevitable.
Eso de que "no debe compararse" es ser muy extremista.



Por supuesto que se compara con lo que se conoce, pero por tus palabras
das la sensacíón de que se han inventado un lenguaje muy difícil,



No pero sí innecesariamente complicado en muchos aspectos. En estos tiempos
donde debe procurarse la simpleza .NET ha vuelto a hacer dificil la
programacion y aunque muchos no se den cuenta, la sintaxis tienen mucho que
ver.
Ahora debo decir que realmente va mejorando en cada version pero esta lejos
de ser una herramienta RAD al menos para las aplicaciones Windows. Yo lo
comparo en mi ambiente laboral donde uno ve el rendimiento de los
programadores de C# (y hasta VB.NET) en comparacion con los de VFP, la
diferencia es abismal. Los costos de los sistemas han aumentado.
Si te das cuenta, los cambios de la proxima version van orientados entre
otras cosas a simplificar la sintaxis. Hay personas que dicen ya que .NET
es la historia ciclica que va a terminar siendo lo mismo a lo que llegaron
otros lenguajes de 4ta generacion solo que se daran cuenta en varios años.

Y el hecho de que .NET vaya cambiando tan radicalmente en cada version
demuestra precisamente que es una herramienta que esta todavia en gestacion
o desarrollo inicial (que no fue lo suficientemente pensada de inicio) y
tambien confirma lo que gente como yo critica, lo poco amigable que ha sido
para los programadores al menos en sus primeras versiones.
No dudamos que llegaran nuevas mejoras donde nos sintamos mas comodos los
programadores que no vengamos de C, lo cual tampoco es ningun pecado (no
venir de C).


cuando en realidad no es más que una de las miles de variantes de C que
existen y éste tiene bastantes más añitos que VFP y si mal no recuerdo, que
el propio Basic.




Hay un C++.NET y no creo que nadie lo prefiera a C#, el cual siempre se nos
vendio como equivalente al VB.NET. Asi que eso de que vengan de C no lo veo
como justificacion.







Dices "lenguajes" pero, para el que venga de VFP, aparte de VB.NET, que
ya no lo es tanto como era VB, conoces algun otro parecido que funcione
para .NET y sea comparable con C# ?



No se si sigue existiendo Visual Fox.NET.



Nunca ha existido ni va a existir Visual Fox.NET

Deduzco que no, por la cantidad de gente que trabaja o trabajaba con VFP
que entra en estos grupos de noticias.




Otra persona te dijo que eso no siempre esta en la decision personal ya que
usar C# u otro se lo suelen imponer las circustancias a uno.

Existen cosas raras como J#.NET, y luego inventos tipo Cobol.NET,
Pascal.NET, etc... que hacen empresas privadas. Yo lo que no entiendo es
por qué en este caso no te valdría VB.NET si la sintaxis es igual que la
de VB.



No es igual. Yo preferi C# en parte de por imposicion y en parte porque la
migracion a VB.NET para los que conociamos VB o VFP era igualmente
trabajosa. Preguntale a cualquier programador de VB 6 si fue sencillo
migrar a VB.NET. Tambien me influyo la publicidad de que C# es el lenguaje
de microsoftt, el lenguaje del futuro.. y no se cuantas tonterias mas del
mercadeo.


Al fin y al cabo, uses el lenguaje que uses, vas a tener que usar las
mismas clases para hacer las mismas operaciones y eso solo ya depende de
lo que es .NET, no del lenguaje que uses.




Por eso en parte VB.NET no es la gran ventaja sintactica tampoco respecto a
C#.





Y respecto a LinQ y las expresiones lambda... es tan simple como que si
no se entiende, no se use.



Bastante profundo tu argumento :)




Por supuesto, reconozco que lo he mirado por encima (profundizaré cuando
haya una versión estable y me ponga de lleno con ello).



Lo sospechaba.

Pero el tema es que si tanto os agobian estos cambios, tantas quejas tenéis
sobre ciertas novedades de las plataformas, coño, ¡no las uséis!. Será un
razonamiento poco profundo, será lo que sea, pero es que no hago más que
leer quejas en estas news sobre cosas que para mi, son triviales.



Ahi me uno a lo que te dice Alfredo Crisostomo, tu pareces estar molesto
porque la gente se queje. No se cual es tu problema. Si te molestan las
quejas no las leas porque yo me seguire quejando todas las veces que me de
la gana y ni tu ni nadie van a influir mi derecho a expresar mis quejas.
Ademas no soy el unico.



No sé, pero mi impresión es que hay cosas más importantes de las que
quejarse, pero bueno, es sólo mi impresión




Si tu tambien tienes tus quejas (mas importantes que las de otros) por que
mejor no inviertes tu tiempo expresandolas tambien y no criticando las
quejas de los otros.



Rafa
Respuesta Responder a este mensaje
#35 Juan Diego Bueno
10/09/2007 - 14:47 | Informe spam
Para concluir:

cuando en realidad no es más que una de las miles de variantes de C que
existen y éste tiene bastantes más añitos que VFP y si mal no recuerdo,
que el propio Basic.



Hay un C++.NET y no creo que nadie lo prefiera a C#, el cual siempre se
nos vendio como equivalente al VB.NET. Asi que eso de que vengan de C no
lo veo como justificacion.



Yo sólo he interpretado desde tu primer post una dificultad en la sintaxis
del lenguaje que ya de por sí es intrínseca por venir de C, y esa impresión
me ha dado. He interpretado que el lenguaje debería evolucionar hacia otro
tipo de sintaxis, y es lo que no he entendido, puesto que está basado en C
igual que tantos otros. Tampoco digo que porque entiendas mejor la sintaxis
de C, tengas que programar en C++


No se si sigue existiendo Visual Fox.NET.



Nunca ha existido ni va a existir Visual Fox.NET



Ahora podéis darme los palos que queráis... pero hace años leí sobre algo
como Visual Fox.NET (y juraría que en una web de microsoft), y habría jurado
que existía como tal. Disculpas por la metedura de pata

No es igual. Yo preferi C# en parte de por imposicion y en parte porque
la migracion a VB.NET para los que conociamos VB o VFP era igualmente
trabajosa. Preguntale a cualquier programador de VB 6 si fue sencillo
migrar a VB.NET. Tambien me influyo la publicidad de que C# es el lenguaje
de microsoftt, el lenguaje del futuro.. y no se cuantas tonterias mas del
mercadeo.



Al fin y al cabo, uses el lenguaje que uses, vas a tener que usar las
mismas clases para hacer las mismas operaciones y eso solo ya depende de
lo que es .NET, no del lenguaje que uses.




Por eso en parte VB.NET no es la gran ventaja sintactica tampoco respecto
a C#.




Yo he programado en VB6 y por supuesto, he tenido que adaptarme a .NET en
unos casos mejores que otros, pero las bases de la sintaxis son las mismas.
Es decir, un IF termina con un END IF, en VB6 y en .NET, y para mi... eso es
la sintaxis del lenguaje, ni más ni menos.

Si te referías con ello a la dificultad con el manejo de las clases .NET,
por supuesto que pueden resultar difíciles, pero como indicas en tu post,
ves confusa la definición de genéricos, mientras que ésta es muy similar a
las templates de C++ (y seguramente a los propios genéricos de Java, pero
aquí... no lo voy a asegurar porque no lo he mirado y escribo de memoria,
también me podéis dar palos). Es decir, no veo por qué por ejemplo, un
programador que venga de Java o de C++ tenga que adaptarse a lo que quiera
un programador de VFP o VB sólo porque no le gusta la sintaxis. Pero
repetiré hasta la saciedad, sencillamente, no lo entiendo, lo cual no quiere
decir que tu, Maroto o el de la moto no tengáis derecho a quejaros, sólo
emito una opinión sobre esas quejas. No me considero tan importante como
para eso, ni falta que hace, la verdad.

Y respecto a LinQ y las expresiones lambda... es tan simple como que si
no se entiende, no se use.



Bastante profundo tu argumento :)




Por supuesto, reconozco que lo he mirado por encima (profundizaré cuando
haya una versión estable y me ponga de lleno con ello).



Lo sospechaba.

Pero el tema es que si tanto os agobian estos cambios, tantas quejas
tenéis sobre ciertas novedades de las plataformas, coño, ¡no las uséis!.
Será un razonamiento poco profundo, será lo que sea, pero es que no hago
más que leer quejas en estas news sobre cosas que para mi, son triviales.



Ahi me uno a lo que te dice Alfredo Crisostomo, tu pareces estar molesto
porque la gente se queje. No se cual es tu problema. Si te molestan las
quejas no las leas porque yo me seguire quejando todas las veces que me de
la gana y ni tu ni nadie van a influir mi derecho a expresar mis quejas.
Ademas no soy el unico.



Tu lo has dicho "parezco". Mi error ha sido ponerme a la defensiva cuando
sólo quería expresar lo que me cuesta entender bajo mi punto de vista
ciertas quejas. Y no creo que a estas alturas mi opinión o la de cualquier
otro, vaya a influir en lo que otra persona escriba en estos grupos. Yo en
un momento dado me quejo de vuestras quejas, pero parece que yo no tenga el
derecho a hacerlo, y esté tratando con ello de coaccionaros para que no las
hagais (de todas maneras, eso no me convierte en dictador, intolerante y
otras lindezas de las que se me ha calificado aquí). En cambio, yo, que no
tengo argumentos de peso según vosotros, ni un conocimiento teóricamente tan
profundo de LinQ y las lambda, igual si debería callarme. Me vais a
perdonar, pero yo no entiendo nada.


No sé, pero mi impresión es que hay cosas más importantes de las que
quejarse, pero bueno, es sólo mi impresión




Si tu tambien tienes tus quejas (mas importantes que las de otros) por que
mejor no inviertes tu tiempo expresandolas tambien y no criticando las
quejas de los otros.




Cuando las tenga, por supuesto que las expondré. Lo que pasa (y no se mire
esto con ningún doble sentido) que suelo trabajar con lo que hay sin
plantearme si es lo mejor o lo peor, simplemente lo que hay. Por supuesto
que cualquier queja sirve para mejorar, pero algunas son lo suficientemente
subjetivas como para que lo que a uno le beneficia, a otro le pueda
perjudicar. De todas maneras, ¿no era coacción el hecho de no estar de
acuerdo con vuestras quejas? ¿por qué ahora se me sugiere a mi que invierta
mi tiempo en otras cosas?

Esto es el cuento de nunca acabar...

Prefiero el debate de Octavio, Carlos y Alfredo :)

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