Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Linq ve Dinamik property


Öne çıkan mesajlar

Mesaj tarihi:
baya zorlandigim bir konu. simdi elimde bir txt dosyasi var
bu dosya icerigi söyle:
name;namenew;adress;plz;ort;telefon;telefax;epost;web; (bu ilk satir)
daha sonra ki satirlarda datalar var.
elimde bir linq var


var query = from line in datalines
let data = line.Split(';')
select new
{
name = data[0],
namenew = data[1],
adress = data[2],
plz = data[3],
ort = data[4],
telefon = data[5],
telefax = data[6],
epost = data[7],
web = data[8]
};


görüldügü gibi kod icinde hardcoded sekilde yanliz txt icerigi farkli ise programi cöpe at.
simdi diyelim elimize yeni bir text geldi ve yeni bir field eklendi. adi pati olsun
pati;name;namenew;adress;plz;ort;telefon;telefax;epost;web;
su bölüm

" name = data[0],
namenew = data[1],
adress = data[2],
plz = data[3],
ort = data[4],
telefon = data[5],
telefax = data[6],
epost = data[7],
web = data[8] "



hardcoded oldugu icin program calismayacaktir. burayi nasil dinamik bir bicimde olusturabilirim.
Mesaj tarihi:
çalışmıyo dediğin, kolonları kaydırarak okuyacağı için yanlış yerlere koyar diyosun dimi? Bu yeni eklenen "pati" neye göre eklenebiliyo? yani senin istediğin pati eklenince pati = data[0] olarak almak mı ayrıca?
Mesaj tarihi:
said:
You might use a dictionary, say

Dictionary properties;
I think in most cases where something similar is done, it's done like this.
In any case, you would not gain anything from creating a "real" property with set and get accessors, since it would be created only at run-time and you would not be using it in your code...

Here is an example, showing a possible implementation of filtering and sorting (no error checking):



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

namespace ConsoleApplication1 {

class ObjectWithProperties {
Dictionary<string, object> properties = new Dictionary<string,object>();

public object this[string name] {
get {
if (properties.ContainsKey(name)){
return properties[name];
}
return null;
}
set {
properties[name] = value;
}
}

}

class Comparer<T> : IComparer<ObjectWithProperties> where T : IComparable {

string m_attributeName;

public Comparer(string attributeName){
m_attributeName = attributeName;
}

public int Compare(ObjectWithProperties x, ObjectWithProperties y) {
return ((T)x[m_attributeName]).CompareTo((T)y[m_attributeName]);
}

}

class Program {

static void Main(string[] args) {

// create some objects and fill a list
var obj1 = new ObjectWithProperties();
obj1[test] = 100;
var obj2 = new ObjectWithProperties();
obj2[test] = 200;
var obj3 = new ObjectWithProperties();
obj3[test] = 150;
var objects = new List<ObjectWithProperties>(new ObjectWithProperties[]{ obj1, obj2, obj3 });

// filtering:
Console.WriteLine("Filtering:");
var filtered = from obj in objects
where (int)obj[test] >= 150
select obj;
foreach (var obj in filtered){
Console.WriteLine(obj[test]);
}

// sorting:
Console.WriteLine("Sorting:");
Comparer<int> c = new Comparer<int>("test");
objects.Sort(c);
foreach (var obj in objects) {
Console.WriteLine(obj[test]);
}
}

}
}
Mesaj tarihi:
El-Barto said:

çalışmıyo dediğin, kolonları kaydırarak okuyacağı için yanlış yerlere koyar diyosun dimi? Bu yeni eklenen "pati" neye göre eklenebiliyo? yani senin istediğin pati eklenince pati = data[0] olarak almak mı ayrıca?


tabiki calisiyor yani bir sekilde hata almiyorsun ama senin dedigin gibi kaydiriyor buda istenilen sonuc degil. örnek olarak patiyi txt dosyasini hazirlayan kendi ekliyor.
Mesaj tarihi:
yardimlariniz icin tesekküler reyou'nun dedigi gibi cözdüm güzel oldu. simdi bas bir sorunum var.
bir object var. bunun daha önceden ayarlanmis entityleri var örnek olarak.

account accountCreate = new account();
accountCreate.name = item.name;
accountCreate.namenew = item.name2;
accountCreate.address1_line1 = item.adress;
accountCreate.address1_postalcode = item.plz;


benim yapmak istedigim txt'den olan entityleri bunlarin yerine koymak ve degeri girmek. bir text nasil property döner hic bir fikrim yok.
×
×
  • Yeni Oluştur...