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

#16 Juan Diego Bueno
09/09/2007 - 09:59 | Informe spam
migrado de Foxpro y no gusta la sintaxis de C#, está VB que es basado en
Basic y siempre ha sido un lenguaje más sencillo de leer (aunque
personalmente a mi me gustan más los basados en C). Es por ello que no
debe compararse con VFP o VB, puesto que son totalmente diferentes



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, 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.



y porque también se pueden seguir usando lenguajes que si se parecen más a
esa sintaxis.




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. Deduzco que no, por la cantidad de
gente que trabaja o trabajaba con VFP que entra en estos grupos de noticias.
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.
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.





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



Bastante profundo tu argumento :)

Si hasta ahora se han podido hacer las cosas con más o menos dificultad
con los lenguajes actuales, se van a poder seguir haciendo en el futuro,
haya o no novedades. Si supone un esfuerzo grande tener que aprender
novedades de un lenguaje, pues no se aprenden y se sigue usando lo que ha
habido de siempre, es así de sencillo.




Si vieras lo fundamental que serán LinQ y lambda en el futuro de .NET
seguro que revisarías ese argumento tan simple y conformista que has dado
de que "si no entiendes no lo uses". Te recomiendo que profundices en el
tema y veras de que estoy hablando. Si ya lo has hecho me disculpas pero
fue que me dio la impresion de que no te has empapado mucho de esos dos
temas.



Por supuesto, reconozco que lo he mirado por encima (profundizaré cuando
haya una versión estable y me ponga de lleno con ello). 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. Yo de lo poco que he
visto de LinQ, no veo que sea una sintaxis difícil, sea el lenguaje que sea.
De las expresiones lambda, la verdad, aún no he visto nada. Si todo esto va
a pesar tanto en el futuro como para no usar otra cosa, puedes estar
tranquilo, que te va a dar tiempo de sobra en aprenderlo y acostumbrarte.
Reconozco que a mi tampoco me entusiasma que con la versión X se hagan las
cosas de una manera, y llegue la Y y las cambie de golpe (por ejemplo,
véanse versiones 1.x y 2.0), pero es que en este caso (y si no es así, que
algún experto me corrija), la versión 3.5 aportará muchas más cosas que
cambiará de la versión 2.0 y nadie te obliga a usar las nuevas
funcionalidades, desde luego.

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

Saludos
Respuesta Responder a este mensaje
#17 Alfredo Crisostomo
09/09/2007 - 13:42 | Informe spam

si tanto os agobian estos cambios, tantas quejas tenéis sobre ciertas
novedades de las plataformas, coño, ¡no las uséis!.




Oye pero deja a la gente que se queje de lo que considere. Las cosas no son
tan simples como tu las ves, a veces los asalariados no tenemos opción de
qué debemos usar o no, simplemente nos lo imponen. Lo sabías? no parece.

Además quejarse eso es problema de cada quien, lo que para ti no tiene
importancia para otro la tiene, yo veo que eso hay que respetarlo sin tener
que tomarselo con ese radicalismo.

Las quejas constantes pueden tener su influencia para el futuro a favor de
los programadores incluido tu.

Ademas los foros son libres, a menos que algunos los hayan comprado y no se
sepa.


Alfredo
Respuesta Responder a este mensaje
#18 Juan Diego Bueno
09/09/2007 - 13:59 | Informe spam
si tanto os agobian estos cambios, tantas quejas tenéis sobre ciertas
novedades de las plataformas, coño, ¡no las uséis!.




Oye pero deja a la gente que se queje de lo que considere. Las cosas no
son tan simples como tu las ves, a veces los asalariados no tenemos opción
de qué debemos usar o no, simplemente nos lo imponen. Lo sabías? no
parece.



Pues tienes razón, me estoy quejando de los que se quejan, mal por mi.
Respecto a lo que a uno le impongan... de acuerdo, si te imponen C# y es muy
diferente de lo que hacías hasta ahora, pues hay que quejarse, si... a quien
te lo impone, o al menos hacerle ver que necesitas un tiempo de aprendizaje,
eso es obvio.

Además quejarse eso es problema de cada quien, lo que para ti no tiene
importancia para otro la tiene, yo veo que eso hay que respetarlo sin
tener que tomarselo con ese radicalismo.

Las quejas constantes pueden tener su influencia para el futuro a favor de
los programadores incluido tu.



Bien, de la misma forma puedo expresar que esas quejas no me parecen
fundadas, y no veo que mi postura sea radical, solo que para mi hay cosas
más importantes de las que quejarse. Este tema en sí a mi me parece muy
subjetivo, por eso no le veo tanta importancia. Si un lenguaje no tuviera
posibilidad de trabajar con una funcionalidad muy utilizada y necesaria,
entendería que es de interés común, y que nos beneficia a todos. Que un
programador de VFP diga que le dificulta la sintaxis de C# y que debería ser
tan sencilla como la de su lenguaje, le beneficia a él, pero le perjudica a
aquel que ha programado siempre en C o derivados (que son muchos).


Ademas los foros son libres, a menos que algunos los hayan comprado y no
se sepa.



Pues por eso me expreso libremente. Si considera alguien que falto al
respeto por opinar algo diferente, o que trato de coaccionar con mis
opiniones, que me lo diga y en paz
Respuesta Responder a este mensaje
#19 Alfredo Crisostomo
09/09/2007 - 15:02 | Informe spam

más importantes de las que quejarse. Este tema en sí a mi me parece muy
subjetivo, por eso no le veo tanta importancia.



Si te es tan trivial, pues por qué molestas con eso a los que nos quejamos?
Dejanos hacerO es que hay que responder todos los mensajes? No puedes
ignorar alguno?



Ademas los foros son libres, a menos que algunos los hayan comprado y no
se sepa.



Pues por eso me expreso libremente.



Te expresas libremente aunque tu expresión se orienta a negarle el derecho
al otro de expresar libremente lo que considere. Paradoja? Los dictadores
lo hacen también.


Si considera alguien que falto al respeto por opinar algo diferente, o que
trato de coaccionar con mis opiniones, que me lo diga y en paz




Opinar es una cosa pero decir malas palabras como "coño" en frases
imperativas de tómalo o déjalo a gente que está expresando decentemente su
opinión o queja, creo que es un exceso y falta de respeto de tu parte.
Y para colmo tu mismo admites que no estas muy empapado de los temas de que
se están discutiendo. Entonces? Ganas de molestar solamente?


Alfredo
Respuesta Responder a este mensaje
#20 Juan Diego Bueno
09/09/2007 - 15:43 | Informe spam
más importantes de las que quejarse. Este tema en sí a mi me parece muy
subjetivo, por eso no le veo tanta importancia.



Si te es tan trivial, pues por qué molestas con eso a los que nos
quejamos? Dejanos hacerO es que hay que responder todos los mensajes?
No puedes ignorar alguno?



De la misma forma tu pudiste ignorar los míos

Pues por eso me expreso libremente.



Te expresas libremente aunque tu expresión se orienta a negarle el derecho
al otro de expresar libremente lo que considere. Paradoja? Los
dictadores lo hacen también.



Yo no he negado nunca a nadie el derecho de expresarse, simplemente he
respondido lo que yo opinaba sobre eso, y he debatido, lo cual me gusta. De
hecho, sobre la comparación con un dictador tuya, prefiero no opinar


Si considera alguien que falto al respeto por opinar algo diferente, o que
trato de coaccionar con mis opiniones, que me lo diga y en paz




Opinar es una cosa pero decir malas palabras como "coño" en frases
imperativas de tómalo o déjalo a gente que está expresando decentemente su
opinión o queja, creo que es un exceso y falta de respeto de tu parte.
Y para colmo tu mismo admites que no estas muy empapado de los temas de
que se están discutiendo. Entonces? Ganas de molestar solamente?



Esa expresión ahí no deja de ser coloquial, una falta de respeto es un
insulto. Yo puedo no estar empapado en lo que es LinQ o las lambda, pero si
puedo replicar a alguien que opina que una sintaxis es difícil sólo porque
no se adecua a con aquello con lo que él ha trabajado. No es el caso, pero
si llevara años programando en C o Java, sin haber tocado VB o VFP no me
entusiasmaría que alguien pidiera una evolución del lenguaje a sus propios
gustos o intereses, vulnerando con ellos los míos.

De todas maneras... si crees que molesto, si crees que lo hago por
incordiar, tu mismo. Yo te aseguro que no voy a jugar al juego de tener la
última palabra porque ya he dicho lo que tenía que decir y todo lo demás es
marear la perdiz.

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