Search Results

Search found 19676 results on 788 pages for 'hardware interface'.

Page 291/788 | < Previous Page | 287 288 289 290 291 292 293 294 295 296 297 298  | Next Page >

  • Ubuntu 13.10 - Wifi not re-connecting after suspend

    - by Matthew
    I upgraded the other day from Ubuntu 13.04 to 13.10 on my ZaReason laptop, and the WiFi doesn't reconnect after suspend. In 13.04, pressing Fn+F2 turned network connections back on after suspend. The 'soft' wireless hardware switch. But in 13.10, that doesn't work, and trying to enable networking in the networking menu doesn't work either. So I have to restart every time. Any suggestions to make it work?

    Read the article

  • E3 2012 : Du nouveau pour la XBox 360 : l'application Smart Glass, Internet Explorer et XBox Music débarqueront cette année

    E3 2012 : Des nouveautés pour la XBox 360 Smart Glass, Internet Explorer et Music Smart GlassIl faut dire que pour l'instant, peu de choses ont été dévoilées à propos de Smart Glass. Sous ce nom se cache une application pour Windows 8, Windows Phone mais aussi les périphériques sous iOS afin de les utiliser comme contrôleur pour la XBox. La technologie permettra d'utiliser son PC, sa tablette ou son smartphone, pour afficher l'image mais aussi pour contrôler la XBox, donnant ainsi une meilleure interface utilisateur pour des applications comme Internet Explorer. De plus, The Verge

    Read the article

  • Send raw data to USB parallel port after upgrading to 11.10 oneiric

    - by zaphod
    I have a laser cutter connected via a generic USB to parallel adapter. The laser cutter speaks HPGL, as it happens, but since this is a laser cutter and not a plotter, I usually want to generate the HPGL myself, since I care about the ordering, speed, and direction of cuts and so on. In previous versions of Ubuntu, I was able to print to the cutter by copying an HPGL file directly to the corresponding USB "lp" device. For example: cp foo.plt /dev/usblp1 Well, I just upgraded to Ubuntu 11.10 oneiric, and I can't find any "lp" devices in /dev anymore. D'oh! What's the preferred way to send raw data to a parallel port in Ubuntu? I've tried System Settings Printing + Add, hoping that I might be able to associate my device with some kind of "raw printer" driver and print to it with a command like lp -d LaserCutter foo.plt But my USB to parallel adapter doesn't seem to show up in the list. What I do see are my HP Color LaserJet, two USB-to-serial adapters, "Enter URI", and "Network Printer". Meanwhile, over in /dev, I do see /dev/ttyUSB0 and /dev/ttyUSB1 devices for the 2 USB-to-serial adapters. I don't see anything obvious corresponding to the HP printer (which was /dev/usblp0 prior to the upgrade), except for generic USB stuff. For example, sudo find /dev | grep lp produces no output. I do seem to be able to print to the HP printer just fine, though. The printer setup GUI gives it a device URI starting with "hp:" which isn't much help for the parallel adapter. The CUPS administrator's guide makes it sound like I might need to feed it a device URI of the form parallel:/dev/SOMETHING, but of course if I had a /dev/SOMETHING I'd probably just go on writing to it directly. Here's what dmesg says after I disconnect and reconnect the device from the USB port: [ 924.722906] usb 1-1.1.4: USB disconnect, device number 7 [ 959.993002] usb 1-1.1.4: new full speed USB device number 8 using ehci_hcd And here's how it shows up in lsusb -v: Bus 001 Device 008: ID 1a86:7584 QinHeng Electronics CH340S Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1a86 QinHeng Electronics idProduct 0x7584 CH340S bcdDevice 2.52 iManufacturer 0 iProduct 2 USB2.0-Print iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 96mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 7 Printer bInterfaceSubClass 1 Printer bInterfaceProtocol 2 Bidirectional iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)

    Read the article

  • Wired connection not being recognized

    - by maxifick
    I'm on Ubuntu Maverick (10.10). I've read a few threads regarding wired connection problems, but haven't found a solution yet. The problem appears after I connect to a wireless network. When I disconnect wireless and plug in an internet cable, the wired connection is not recognized at all. Even the socket appears dead (there are no diodes flashing). The only solution so far seems to be restarting the computer. Network Manager then tries to connect to a Wi-Fi, but the wired connection is listed and working. I've tried sudo restart network-manager, but that doesn't solve anything. After a while, available wireless networks start appearing, but the wired still doesn't. Any ideas? Thanks in advance. Edit: Here is the dmesg output after switching off Wi-Fi and then plugging the internet cable. [18200.623543] Restarting tasks ... done. [18200.648422] video LNXVIDEO:00: Restoring backlight state [18200.707580] sky2 0000:02:00.0: eth0: phy I/O error [18200.707715] sky2 0000:02:00.0: eth0: phy I/O error [18200.707819] sky2 0000:02:00.0: eth0: phy I/O error [18200.707922] sky2 0000:02:00.0: eth0: phy I/O error [18200.708025] sky2 0000:02:00.0: eth0: phy I/O error [18200.708127] sky2 0000:02:00.0: eth0: phy I/O error [18200.708229] sky2 0000:02:00.0: eth0: phy I/O error [18200.708332] sky2 0000:02:00.0: eth0: phy I/O error [18200.708824] sky2 0000:02:00.0: eth0: enabling interface [18200.709587] ADDRCONF(NETDEV_UP): eth0: link is not ready [18202.662422] EXT4-fs (sda9): re-mounted. Opts: errors=remount-ro,user_xattr,commit=0 [18203.324061] EXT4-fs (sda9): re-mounted. Opts: errors=remount-ro,user_xattr,commit=0 [18211.193137] eth1: no IPv6 routers present [18212.844649] usb 5-1: new low speed USB device using ohci_hcd and address 5 [18213.017235] input: USB Optical Mouse as /devices/pci0000:00/0000:00:13.0/usb5/5-1/5-1:1.0/input/input16 [18213.017499] generic-usb 0003:0461:4D17.0004: input,hidraw0: USB HID v1.11 Mouse [USB Optical Mouse] on usb-0000:00:13.0-1/input0 After system restart, dmesg says this: [ 19.802126] sky2 0000:02:00.0: eth0: enabling interface [ 19.802394] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 20.812533] device eth0 entered promiscuous mode [ 21.495547] sky2 0000:02:00.0: eth0: Link is up at 100 Mbps, full duplex, flow control rx [ 21.495677] sky2 0000:02:00.0: eth0: Link is up at 100 Mbps, full duplex, flow control rx [ 21.496574] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

    Read the article

  • Is there an more user friendly alternative to afraid.org for DNS subdomains?

    - by rogerdpack
    I would like "people out there" to be able to host subdomains to my domain easily. I'm aware that you can do this using afraid.org (free) and it works well, however for "people out there" to use afraid.org is a hard thing because of its cryptic interface (not very user friendly). Any alternatives out there you can recommend, that would allow unlimited subdomains on my domain for whoever wants them, but more user friendly?

    Read the article

  • Wireless network disabled

    - by neil delmonte
    After installing Ubuntu 11.04, my network has become disabled. Here is the output oflshw in terminal: *-network DISABLED description: Wireless interface product: BCM4312 802.11b/g LP-PHY vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:02:00.0 logical name: eth1 version: 01 serial: 00:21:00:58:65:5f width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=wl0 driverversion=5.100.82.38 latency=0 multicast=yes wireless=IEEE 802.11bg resources: irq:17 memory:d4600000-d4603fff

    Read the article

  • Ubuntu Server Configuration -- Harddrive Partitioning

    - by black_bird
    Currently Ubuntu Server is telling me that when I'm making a new partition for Ubuntu Server on this NTFS 1TB HD that I currently have installed to the hardware, that the partition must be a minimum of 52% of the hard drive space or ~521GB. I'm almost positive that this will run into other data, as I have quite a bit of stuff on the hard drive currently. Can I not make a Ubuntu server partition on that hard drive at like 100GB or something? Why does it require so much?

    Read the article

  • Why C++ people loves multithreading when it comes to performances?

    - by user1849534
    I have a question, it's about why programmers seems to love concurrency and multi-threaded programs in general. I'm considering 2 main approach here: an async approach basically based on signals, or just an async approach as called by many papers and languages like the new C# 5.0 for example, and a "companion thread" that maanges the policy of your pipeline a concurrent approach or multi-threading approach I will just say that I'm thinking about the hardware here and the worst case scenario, and I have tested this 2 paradigms myself, the async paradigm is a winner at the point that I don't get why people 90% of the time talk about concurrency when they wont to speed up things or make a good use of their resources. I have tested multi-threaded programs and async program on an old machine with an Intel quad-core that doesn't offer a memory controller inside the CPU, the memory is managed entirely by the motherboard, well in this case performances are horrible with a multi-threaded application, even a relatively low number of threads like 3-4-5 can be a problem, the application is unresponsive and is just slow and unpleasant. A good async approach is, on the other hand, probably not faster but it's not worst either, my application just waits for the result and doesn't hangs, it's responsive and there is a much better scaling going on. I have also discovered that a context change in the threading world it's not that cheap in real world scenario, it's infact quite expensive especially when you have more than 2 threads that need to cycle and swap among each other to be computed. On modern CPUs the situation it's not really that different, the memory controller it's integrated but my point is that an x86 CPUs is basically a serial machine and the memory controller works the same way as with the old machine with an external memory controller on the motherboard. The context switch is still a relevant cost in my application and the fact that the memory controller it's integrated or that the newer CPU have more than 2 core it's not bargain for me. For what i have experienced the concurrent approach is good in theory but not that good in practice, with the memory model imposed by the hardware, it's hard to make a good use of this paradigm, also it introduces a lot of issues ranging from the use of my data structures to the join of multiple threads. Also both paradigms do not offer any security abut when the task or the job will be done in a certain point in time, making them really similar from a functional point of view. According to the X86 memory model, why the majority of people suggest to use concurrency with C++ and not just an async aproach ? Also why not considering the worst case scenario of a computer where the context switch is probably more expensive than the computation itself ?

    Read the article

  • New Sales Kit – Enterprise Manager 12c

    - by Cinzia Mascanzoni
    Check out the latest Quick Reference Guides for Enterprise Manager 12c in the Knowledge Zone. The two-page Quick Reference Guide is designed to help partners uncover additional revenue opportunity by positioning Enterprise Manager. Content includes elevator pitch for Enterprise Manager, tips on identifying target customers, qualifying questions to initiate customers discussion, supporting videos, references, and whitepapers for each customer scenario.• Enterprise Manager 12c for Application Partners • Enterprise Manager 12c for Hardware Partners• Enterprise Manager 12c for Database Partners

    Read the article

  • Dell Vostro 1520 wifi not working with Ubuntu 12.04

    - by user65696
    I have installed Ubuntu 12.04 on Dell Vostro 1520 Laptop. But found Wifi is hardware locked, though wifi is working perfectly fine with Windows 7 in the same laptop. I tried to upgrade the drivers as mentioned in other posts/forums but could not resolve the issue. I had the similar problem with versions 11.* as well. Last time the Wifi worked with 10.* version. Please help me to get it resolved.

    Read the article

  • login problem for 13.10, my username does not appear

    - by Anand
    After upgrading my Ubuntu to the newest version 13.10, in the login interface, my account does not appear. I can login the guest session. There is also a remote login. I have no place to input my username to login my account. Does anyone have the same problem? ----EDIT---- Here is the file lightdm.conf [SeatDefaults] greeter-session=unity-greeter user-session=ubuntu ----EDIT TWO--- Here is the official bug report: https://bugs.launchpad.net/ubuntu/+source/unity-greeter/+bug/1235785

    Read the article

  • Dual Monitor Lock Screen Problem

    - by Justin Carver
    Ubuntu 12.04 Nvidia GTX 550-Ti x-swat Nvidia driver Problem: Using 2 monitors. When screen locks there is a blue box on top of the wallpaper and password dialog box that hides the field for entering your password or switching users. Problem is on 2 systems with similar hardware (Nvidia card, x-swat driver, dual monitors) You can still type your password in blindly and hit enter to login but it's irritating to not be able to see the dialog box.

    Read the article

  • Error while running Quickly

    - by Sagar Mk
    Getting an error while running quickly app: ------------------------------------------------------------------------------------------- Creating project directory sata Creating bzr repository and committing Launching your newly created project! (sata:2701): GLib-GIO-ERROR **: Settings schema 'org.gnome.desktop.interface' is not installed Congrats, your new project is setup! cd /home/blacksaint/sata/ to start hacking. ------------------------------------------------------------------------------------------- Actually after this the app should pop - up but it really doesn't do so!

    Read the article

  • Les WebAPIs de Mozilla progressent, les applications Web peuvent exploiter de plus en plus de fonctionnalités natives des Smartphones

    Les WebAPIs de Mozilla progressent Et permettent aux applications Web d'exploiter de plus en plus de fonctionnalités du hardware des smartphones Les frontières s'effacent entre le développement mobile et le Web. Le mouvement a commencé avec des applications hébergées pour contourner les restrictions des galeries d'applications (lire par ailleurs). Le trio HTML5, CSS3, JavaScript a fait de plus en plus d'adepte à tel point que certains lui prédisent même un avenir plus florissant que les développements natifs. La Fondation Mozilla oeuvre à sa...

    Read the article

  • How can I have more clicks than page views in AdSense

    - by ArcticLlama
    One of my AdSense ad units (in the new beta interface) occasionally says that I have more clicks than page views which gives a CTR of over 100%. Does anyone know how this happens? I'm assuming it has something to do with when a page view is recorded, versus when someone clicks, but it happens regularly enough (on a daily report) that it can't just be that a bunch of users click an ad before the page displays fully.

    Read the article

  • How to handle brightness trouble on dell inspiron i14R-2265?

    - by den-javamaniac
    Hi. Recently I've installed ubuntu 10.10 32-bit on my dell inspiron i14r-2265, but it looks like brightness control is not working. I can change it "programmatically" (FN + brightness key), though actual screen brightness shows no effect. I've tried this advice but it didn't work for me. I actually have no idea how it works (if hardware is not responsive to software, the way I see it), so can someone suggest a solution please?

    Read the article

  • Windows 8.1 : le SDK et un guide de migration pour les applications Windows 8 également disponibles en téléchargement

    Windows 8.1 : un nouveau SDK et un guide de migration pour les applications Windows 8 Disponibles en téléchargementPromesse tenue. Microsoft a dévoilé hier soir la première pré-version de Windows 8.1 (alias « Blue »), la mise à jour très attendue de Windows 8 qui sera officiellement disponible gratuitement pour les utilisateurs de Windows 8 « un peu plus tard dans l'année ».Un premier tour d'horizon de l'OS montre quelques nouveautés cosmétiques, comme deux nouvelles tailles de tuiles dans l'interface Metro la Modern UI. La taille « très grande » permet d'afficher plus d'informations sans avoir à ouvrir l'application (météo du jour mais également des jours suivant par exemple) ....

    Read the article

  • Dowloaded Wubi.exe but it doesn't run on my asus 1005p ee pc running windows 7

    - by Manoj
    I want to install ubuntu 12.04 LTS along side windows 7 on my Asus 1005P Eee PC. I tried to install it with the Live USB created with the "Universal-USB-Installer-1.9.0.2.exe" but failed. Alternatively, I downloaded the "wubi.exe" installer from www.ubuntu.com, but it does not run on my pc. Is this version of ubuntu incompatible for the given hardware for side by side installation with windows 7?

    Read the article

  • Can my machine run Ubuntu( kubuntu | xubuntu | mint ) 12.04 WELL?

    - by Steve
    I have a 9 year old computer packing the hardware listed below. My question is, can I run 12.04 ( Ubuntu, Kubuntu, MINT or Xubuntu ) WELL? I was running Ubuntu 10.10 and I upgraded to 12.04 by going through each release via the update manager: 11.04 - 11.10 -12.04 During the installation process for 12.04 I saw an error message that there was an error installing and setting up part of the kernel. Later, when I tried installing a package in synaptic, I got another error message mentioning the kernel. When I rebooted, I got told somehting about my video and graphics was not configured properly and that I would have to do it manually ( like I know ). It gave me the option to enter the system in low graphics mode, but it just hanged. I had an old livecd of Xubuntu 10.10 around so I used that to get into my computer and copy data over to an external hard drive. I think tried to install Xubuntu 10.10 from the livecd, with the option "download updates" checked. The install process moved along a bit, then halted for about 5 hours. I rebooted my machine and tried the Xubuntu 10.10 installer WITHOUT the option to "download updates". The install completed in about 15 minutes. So, all of that is making me wonder if there is someting about 12.04 that does not like my hardware. I'm willing to try again, but only if I know I will not have to spend hours just to get to an error message and a hosed up system like I did last night. I also think I have a lot more RAM than is being reported in the output below. I had extra ram installed last year. I'm not good with the command line readouts, but there seems like there should be a lot more. I wasn't thrilled with Unity. I am willing to try Kubuntu 12.04. Will I run into the same problems? What is the highest version of a *ubuntu can I upgrade to? Thanks CPU Model: Intel(R) Pentium(R) 4 CPU 2.53GHz Frequency: 2533.223 MHz L2 Cache: 512 KB Bogomips: 5066.44 Numbering: family(15) model(2) stepping(7) Flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts cid RAM ~$ free -mt total used free shared buffers cached Mem: 1506 891 615 0 91 521 -/+ buffers/cache: 278 1227 Swap: 1609 0 1609 Total: 3116 891 2225 Video Card 01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] (rev a2) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. V9180 Magic Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 16 Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Memory at f0000000 (32-bit, prefetchable) [size=64M] Expansion ROM at fe9e0000 [disabled] [size=128K] Kernel driver in use: nouveau Kernel modules: nouveau, nvidiafb Motherboard Intel 845PE ATX 533FSB DDR333 USB2

    Read the article

  • Should I run Ubuntu 64bit on a laptop with 2GB of RAM?

    - by nhanb
    I'm using an Asus K43E laptop with: - Intel Core i3 Sandy Bridge 2.1GHz - 2GB DDR3 - Onboard graphics On the Ubuntu download page, the 32bit version is marked as "recommended", but the community documentation page suggests otherwise: Unless you have specific reasons to choose 32-bit, we recommend 64-bit to utilise the full capacity of your hardware. I use my laptop mostly for Eclipse, apart from regular office applications, then does it make any difference when choosing between 32bit and 64bit?

    Read the article

  • LINQ – SequenceEqual() method

    - by nmarun
    I have been looking at LINQ extension methods and have blogged about what I learned from them in my blog space. Next in line is the SequenceEqual() method. Here’s the description about this method: “Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.” Let’s play with some code: 1: int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; 2: // int[] numbersCopy = numbers; 3: int[] numbersCopy = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; 4:  5: Console.WriteLine(numbers.SequenceEqual(numbersCopy)); This gives an output of ‘True’ – basically compares each of the elements in the two arrays and returns true in this case. The result is same even if you uncomment line 2 and comment line 3 (I didn’t need to say that now did I?). So then what happens for custom types? For this, I created a Product class with the following definition: 1: class Product 2: { 3: public int ProductId { get; set; } 4: public string Name { get; set; } 5: public string Category { get; set; } 6: public DateTime MfgDate { get; set; } 7: public Status Status { get; set; } 8: } 9:  10: public enum Status 11: { 12: Active = 1, 13: InActive = 2, 14: OffShelf = 3, 15: } In my calling code, I’m just adding a few product items: 1: private static List<Product> GetProducts() 2: { 3: return new List<Product> 4: { 5: new Product 6: { 7: ProductId = 1, 8: Name = "Laptop", 9: Category = "Computer", 10: MfgDate = new DateTime(2003, 4, 3), 11: Status = Status.Active, 12: }, 13: new Product 14: { 15: ProductId = 2, 16: Name = "Compact Disc", 17: Category = "Water Sport", 18: MfgDate = new DateTime(2009, 12, 3), 19: Status = Status.InActive, 20: }, 21: new Product 22: { 23: ProductId = 3, 24: Name = "Floppy", 25: Category = "Computer", 26: MfgDate = new DateTime(1993, 3, 7), 27: Status = Status.OffShelf, 28: }, 29: }; 30: } Now for the actual check: 1: List<Product> products1 = GetProducts(); 2: List<Product> products2 = GetProducts(); 3:  4: Console.WriteLine(products1.SequenceEqual(products2)); This one returns ‘False’ and the reason is simple – this one checks for reference equality and the products in the both the lists get different ‘memory addresses’ (sounds like I’m talking in ‘C’). In order to modify this behavior and return a ‘True’ result, we need to modify the Product class as follows: 1: class Product : IEquatable<Product> 2: { 3: public int ProductId { get; set; } 4: public string Name { get; set; } 5: public string Category { get; set; } 6: public DateTime MfgDate { get; set; } 7: public Status Status { get; set; } 8:  9: public override bool Equals(object obj) 10: { 11: return Equals(obj as Product); 12: } 13:  14: public bool Equals(Product other) 15: { 16: //Check whether the compared object is null. 17: if (ReferenceEquals(other, null)) return false; 18:  19: //Check whether the compared object references the same data. 20: if (ReferenceEquals(this, other)) return true; 21:  22: //Check whether the products' properties are equal. 23: return ProductId.Equals(other.ProductId) 24: && Name.Equals(other.Name) 25: && Category.Equals(other.Category) 26: && MfgDate.Equals(other.MfgDate) 27: && Status.Equals(other.Status); 28: } 29:  30: // If Equals() returns true for a pair of objects 31: // then GetHashCode() must return the same value for these objects. 32: // read why in the following articles: 33: // http://geekswithblogs.net/akraus1/archive/2010/02/28/138234.aspx 34: // http://stackoverflow.com/questions/371328/why-is-it-important-to-override-gethashcode-when-equals-method-is-overriden-in-c 35: public override int GetHashCode() 36: { 37: //Get hash code for the ProductId field. 38: int hashProductId = ProductId.GetHashCode(); 39:  40: //Get hash code for the Name field if it is not null. 41: int hashName = Name == null ? 0 : Name.GetHashCode(); 42:  43: //Get hash code for the ProductId field. 44: int hashCategory = Category.GetHashCode(); 45:  46: //Get hash code for the ProductId field. 47: int hashMfgDate = MfgDate.GetHashCode(); 48:  49: //Get hash code for the ProductId field. 50: int hashStatus = Status.GetHashCode(); 51: //Calculate the hash code for the product. 52: return hashProductId ^ hashName ^ hashCategory & hashMfgDate & hashStatus; 53: } 54:  55: public static bool operator ==(Product a, Product b) 56: { 57: // Enable a == b for null references to return the right value 58: if (ReferenceEquals(a, b)) 59: { 60: return true; 61: } 62: // If one is null and the other not. Remember a==null will lead to Stackoverflow! 63: if (ReferenceEquals(a, null)) 64: { 65: return false; 66: } 67: return a.Equals((object)b); 68: } 69:  70: public static bool operator !=(Product a, Product b) 71: { 72: return !(a == b); 73: } 74: } Now THAT kinda looks overwhelming. But lets take one simple step at a time. Ok first thing you’ve noticed is that the class implements IEquatable<Product> interface – the key step towards achieving our goal. This interface provides us with an ‘Equals’ method to perform the test for equality with another Product object, in this case. This method is called in the following situations: when you do a ProductInstance.Equals(AnotherProductInstance) and when you perform actions like Contains<T>, IndexOf() or Remove() on your collection Coming to the Equals method defined line 14 onwards. The two ‘if’ blocks check for null and referential equality using the ReferenceEquals() method defined in the Object class. Line 23 is where I’m doing the actual check on the properties of the Product instances. This is what returns the ‘True’ for us when we run the application. I have also overridden the Object.Equals() method which calls the Equals() method of the interface. One thing to remember is that anytime you override the Equals() method, its’ a good practice to override the GetHashCode() method and overload the ‘==’ and the ‘!=’ operators. For detailed information on this, please read this and this. Since we’ve overloaded the operators as well, we get ‘True’ when we do actions like: 1: Console.WriteLine(products1.Contains(products2[0])); 2: Console.WriteLine(products1[0] == products2[0]); This completes the full circle on the SequenceEqual() method. See the code used in the article here.

    Read the article

< Previous Page | 287 288 289 290 291 292 293 294 295 296 297 298  | Next Page >