C# – Fájlba írás (StreamWriter)
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
internal class Program
{
/* Írás fájlba */
public static void Iras(List<Class> lista)
{
// FileStream létrehozása (filenév, FileMode.Create felülírja a fájlt, ha létezik)
FileStream fs = new FileStream("file.txt", FileMode.Create);
// StreamWriter létrehozása (FileStream, kódolás)
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
// Fejléc írása
sw.WriteLine("Header");
// Lista elemeinek írása
foreach (var item in lista)
{
sw.WriteLine($"{item.Property1};{item.Property2}");
}
// Fájl lezárása
sw.Close();
fs.Close();
}
public static void Feladat3(List<Class> lista)
{
Console.WriteLine("3. feladat");
Console.WriteLine($"A lista elemeinek száma: {lista.Count}");
}
static void Main(string[] args)
{
// Példa lista
List<Class> adatok = new List<Class>
{
new Class("Adat1", "Value1"),
new Class("Adat2", "Value2")
};
Iras(adatok);
Feladat3(adatok);
Console.ReadKey();
}
}
// Példa Class
public class Class
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public Class(string prop1, string prop2)
{
Property1 = prop1;
Property2 = prop2;
}
}
C# – Fájlbeolvasás (StreamReader)
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Linq;
internal class Program
{
public static List<Class> Beolvas()
{
var lista = new List<Class>();
// Fájl megnyitása olvasásra
FileStream fs = new FileStream("file.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.UTF8);
// Fejléc átugrása
sr.ReadLine();
while (!sr.EndOfStream)
{
string sor = sr.ReadLine();
var parts = sor.Split(';');
lista.Add(new Class(parts[0], parts.Length > 1 ? parts[1] : ""));
}
sr.Close();
fs.Close();
return lista;
}
public static void Feladat3(List<Class> lista)
{
Console.WriteLine("3. feladat");
Console.WriteLine($"A beolvasott adatsorok száma: {lista.Count()}");
}
static void Main(string[] args)
{
var adatok = Beolvas();
Feladat3(adatok);
Console.ReadKey();
}
}
// Példa Class
public class Class
{
public string Property1 { get; set; }
public Class(string prop1) { Property1 = prop1; }
}
C# – Szótár használata (Dictionary)
using System;
using System.Collections.Generic;
public static void BuildDictionary(List<Class> lista)
{
var dict = new Dictionary<string, int>();
foreach (var item in lista)
{
if (dict.ContainsKey(item.StringAdat))
dict[item.StringAdat]++;
else
dict[item.StringAdat] = 1;
}
Console.WriteLine("Dictionary tartalma:");
foreach (var kvp in dict)
Console.WriteLine($"{kvp.Key} – {kvp.Value}");
}
C# WPF/Konzol – FileDialog használata
/* OpenFileDialog (WPF): */
private void Megnyit(object sender, RoutedEventArgs e)
{
var ofd = new OpenFileDialog
{
Title = "Válasszon egy fájlt!",
Filter = "Szöveges fájlok|*.txt|WORD dokumentumok|*.docx;*.doc|Minden fájl|*.*"
};
if (ofd.ShowDialog() == true)
{
string utvonal = ofd.FileName;
using var fs = new FileStream(utvonal, FileMode.Open);
// További beolvasás...
}
else
{
MessageBox.Show("Nincs kiválasztott fájl!", "Hiba", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
/* SaveFileDialog (WPF): */
private void Ment(object sender, RoutedEventArgs e)
{
var sfd = new SaveFileDialog
{
Title = "Mentés másként",
Filter = "Szöveges fájl|*.txt|CSV fájl|*.csv"
};
if (sfd.ShowDialog() == true)
{
string utvonal = sfd.FileName;
using var sw = new StreamWriter(new FileStream(utvonal, FileMode.Create), Encoding.UTF8);
sw.WriteLine("Ez a sor ki lett írva a fájlba.");
}
else
{
MessageBox.Show("Nincs kiválasztott fájl!", "Hiba", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
C# WPF – Ablak beállítások és Grid
<Window
Title="AblakNeve"
Height="450"
Width="800"
MinWidth="300"
MaxHeight="500"
WindowStartupLocation="CenterScreen"
WindowState="Maximized">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="3*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="5*" />
</Grid.ColumnDefinitions>
<Button
x:Name="Gomb2"
Content="Felirat"
Grid.Row="0"
Grid.Column="0"
Grid.RowSpan="2"
Grid.ColumnSpan="2" />
</Grid>
</Window>
C# WPF – Vezérlők definiálása XAML-ben
<Label Content="Szöveg:" />
<TextBox x:Name="Tbox1" />
<DataGrid x:Name="dgrid" AutoGenerateColumns="True" />
<Button x:Name="Gomb1" Content="Küldés" Width="100" Height="20" />
<TextBox x:Name="Tbox" Margin="0,10,20,30" />
<Button Content="Felirat" Width="50" Height="20" />
<Button>Felirat</Button>
<Button>
<Button.Content>Felirat</Button.Content>
</Button>
C# WPF – Vezérlők elérése kódból
// TextBox módosítása
TextBoxNev.Text = "Szöveg";
TextBoxNev.IsEnabled = false;
// Label módosítása
LabelNev.Content = "Tartalom";
// RadioButton / CheckBox állapot
RadioButtonNev.IsChecked = true;
CheckBoxNev.IsChecked = false;
// ListBox / ComboBox
ListBoxNev.Items.Clear();
ListBoxNev.Items.Add("Elem1");
ComboBoxNev.ItemsSource = listaNeve;
// DataGrid
DataGridNev.ItemsSource = listaNeve;
var kijelolt = DataGridNev.SelectedItem;
C# WPF – Több ablak kezelése
// MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow() => InitializeComponent();
protected override void OnClosed(EventArgs e)
{
Application.Current.Shutdown();
}
private void Ugras(object sender, RoutedEventArgs e)
{
var masik = new MasikAblak(this);
this.Hide();
masik.Show();
}
}
// MasikAblak.xaml.cs
public partial class MasikAblak : Window
{
private MainWindow mw;
public MasikAblak(MainWindow mw)
{
InitializeComponent();
this.mw = mw;
}
protected override void OnClosed(EventArgs e)
{
this.Close();
mw.Show();
}
private void UgrasVissza(object sender, RoutedEventArgs e)
{
this.Close();
mw.Show();
}
}
C# WPF – MessageBox használata
MessageBox.Show(
"Szöveg",
"Cím",
MessageBoxButton.OK,
MessageBoxImage.Information
);
C# – SQL kapcsolat és műveletek
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
// Kapcsolat kezelő osztály
class DBConnect
{
private MySqlConnection con;
public DBConnect(string host, string dbname, string ui, string pw)
{
con = new MySqlConnection(
$"Database={dbname};Data Source={host};User Id={ui};Password={pw};"
);
}
private bool Connect()
{
try { con.Open(); return true; }
catch { return false; }
}
private bool ConnectClose()
{
try { con.Close(); return true; }
catch { return false; }
}
public void InsertData(TesztOsztaly temp)
{
if (Connect())
{
string query = "INSERT INTO teszttabla (nev, kor) VALUES (@nev, @kor)";
var cmd = new MySqlCommand(query, con);
cmd.Parameters.AddWithValue("@nev", temp.Nev);
cmd.Parameters.AddWithValue("@kor", temp.Kor);
cmd.ExecuteNonQuery();
ConnectClose();
}
}
public List<TesztOsztaly> SelectAll()
{
var adatok = new List<TesztOsztaly>();
if (Connect())
{
var cmd = new MySqlCommand("SELECT * FROM teszttabla", con);
var reader = cmd.ExecuteReader();
while (reader.Read())
adatok.Add(new TesztOsztaly(
reader.GetInt32(0),
reader.GetString(1),
reader.GetInt32(2)
));
ConnectClose();
}
return adatok;
}
public double AtlagKor()
{
double avg = 0;
if (Connect())
{
var cmd = new MySqlCommand("SELECT AVG(kor) FROM teszttabla", con);
var result = cmd.ExecuteScalar();
if (result != null) avg = Convert.ToDouble(result);
ConnectClose();
}
return avg;
}
}
// Gomb esemény
private void OnButtonClick(object sender, RoutedEventArgs e)
{
var db = new DBConnect("127.0.0.1", "teszt", "root", "");
db.InsertData(new TesztOsztaly("JÓNÁS", 18));
var all = db.SelectAll();
datagrid.ItemsSource = all;
MessageBox.Show($"Átlag kor: {db.AtlagKor()}", "Eredmény");
}
// TesztOsztaly
class TesztOsztaly
{
public int Id { get; set; }
public string Nev { get; set; }
public int Kor { get; set; }
public TesztOsztaly(int id, string nev, int kor) { Id = id; Nev = nev; Kor = kor; }
public TesztOsztaly(string nev, int kor) { Nev = nev; Kor = kor; }
}
C# – Származtatott osztályok példa
// Alap osztály
class Animal
{
public void Eat() => Console.WriteLine("Az állat eszik.");
public void Sleep() => Console.WriteLine("Az állat alszik.");
}
// Származtatott osztályok
class Dog : Animal
{
public void Bark() => Console.WriteLine("A kutya ugat: Vau vau!");
}
class Cat : Animal
{
public void Meow() => Console.WriteLine("A macska nyávog: Miaú!");
}
class Program
{
static void Main()
{
var myDog = new Dog();
myDog.Eat();
myDog.Bark();
var myCat = new Cat();
myCat.Sleep();
myCat.Meow();
}
}
C# – Típus kényszerítés (Type Casting)
double doubleNumber = 8.79;
int intNumber = (int)doubleNumber; // eredmény: 8
C# – Absztrakt osztályok és metódusok
using System;
// Absztrakt osztály
abstract class Vehicle
{
public abstract void Start();
public void Stop() => Console.WriteLine("A jármű megállt.");
}
// Leszármazottok
class Car : Vehicle
{
public override void Start() => Console.WriteLine("Az autó kulccsal indul.");
}
class Bicycle : Vehicle
{
public override void Start() => Console.WriteLine("A bicikli pedálozással indul.");
}
class Program
{
static void Main()
{
Vehicle myCar = new Car();
myCar.Start();
myCar.Stop();
Vehicle myBike = new Bicycle();
myBike.Start();
myBike.Stop();
}
}
C# – Math osztály metódusai
Math.Sqrt(number); // négyzetgyök
Math.Abs(number); // abszolút érték
Math.Round(number); // kerekítés
Math.Ceiling(number); // felfelé kerekítés
Math.Floor(number); // lefelé kerekítés
C# – HashSet duplikációszűrés
using System;
using System.Collections.Generic;
var nevekLista = new List<string> { "név", "név2", "név3", "név" };
var egyediNevek = new HashSet<string>(nevekLista);
Console.WriteLine("Egyedi nevek:");
foreach (var nev in egyediNevek)
Console.WriteLine(nev);
C# – Véletlenszám generálás (Random)
var rnd = new Random();
// Egész szám 5–14 között
int szamInt = rnd.Next(5, 15);
// Lebegőpontos szám 0–1 között
double szamDouble = rnd.NextDouble();
// Logikai érték
bool logikai = rnd.Next(2) == 0;
C# – Alapvető adattípusok
int intNumber = 5; // egész szám
double doubleNumber = 3.79; // lebegőpont
char egyKarakter = 'D'; // karakter
bool myBool = true; // logikai
string valamiSzoveg = "szöveg"; // szöveg